1 #include <catch2/catch_all.hpp>
5 TEST_CASE(
"recv_multipart test",
"[recv_multipart]")
10 output.bind(
"inproc://multipart.test");
11 input.connect(
"inproc://multipart.test");
13 SECTION(
"send 1 message") {
14 input.send(zmq::str_buffer(
"hello"));
16 std::vector<zmq::message_t>
msgs;
17 auto ret = zmq::recv_multipart(
output, std::back_inserter(
msgs));
20 REQUIRE(
msgs.size() == 1);
23 SECTION(
"send 2 messages") {
24 input.send(zmq::str_buffer(
"hello"), zmq::send_flags::sndmore);
25 input.send(zmq::str_buffer(
"world!"));
27 std::vector<zmq::message_t>
msgs;
28 auto ret = zmq::recv_multipart(
output, std::back_inserter(
msgs));
31 REQUIRE(
msgs.size() == 2);
35 SECTION(
"send no messages, dontwait") {
36 std::vector<zmq::message_t>
msgs;
37 auto ret = zmq::recv_multipart(
output, std::back_inserter(
msgs),
38 zmq::recv_flags::dontwait);
40 REQUIRE(
msgs.size() == 0);
42 SECTION(
"send 1 partial message, dontwait") {
43 input.send(zmq::str_buffer(
"hello"), zmq::send_flags::sndmore);
45 std::vector<zmq::message_t>
msgs;
46 auto ret = zmq::recv_multipart(
output, std::back_inserter(
msgs),
47 zmq::recv_flags::dontwait);
49 REQUIRE(
msgs.size() == 0);
51 SECTION(
"recv with invalid socket") {
52 std::vector<zmq::message_t>
msgs;
59 TEST_CASE(
"recv_multipart_n test",
"[recv_multipart]")
64 output.bind(
"inproc://multipart.test");
65 input.connect(
"inproc://multipart.test");
67 SECTION(
"send 1 message") {
68 input.send(zmq::str_buffer(
"hello"));
70 std::array<zmq::message_t, 1>
msgs;
71 auto ret = zmq::recv_multipart_n(
output,
msgs.data(),
msgs.size());
76 SECTION(
"send 1 message 2") {
77 input.send(zmq::str_buffer(
"hello"));
79 std::array<zmq::message_t, 2>
msgs;
80 auto ret = zmq::recv_multipart_n(
output,
msgs.data(),
msgs.size());
86 SECTION(
"send 2 messages, recv 1") {
87 input.send(zmq::str_buffer(
"hello"), zmq::send_flags::sndmore);
88 input.send(zmq::str_buffer(
"world!"));
90 std::array<zmq::message_t, 1>
msgs;
96 input.send(zmq::str_buffer(
"hello"), zmq::send_flags::sndmore);
97 input.send(zmq::str_buffer(
"world!"));
99 std::array<zmq::message_t, 1>
msgs;
101 zmq::recv_multipart_n(
output,
msgs.data(), 0),
104 SECTION(
"send 2 messages") {
105 input.send(zmq::str_buffer(
"hello"), zmq::send_flags::sndmore);
106 input.send(zmq::str_buffer(
"world!"));
108 std::array<zmq::message_t, 2>
msgs;
109 auto ret = zmq::recv_multipart_n(
output,
msgs.data(),
msgs.size());
115 SECTION(
"send no messages, dontwait") {
116 std::array<zmq::message_t, 1>
msgs;
117 auto ret = zmq::recv_multipart_n(
output,
msgs.data(),
msgs.size(),
118 zmq::recv_flags::dontwait);
122 SECTION(
"send 1 partial message, dontwait") {
123 input.send(zmq::str_buffer(
"hello"), zmq::send_flags::sndmore);
125 std::array<zmq::message_t, 1>
msgs;
126 auto ret = zmq::recv_multipart_n(
output,
msgs.data(),
msgs.size(),
127 zmq::recv_flags::dontwait);
131 SECTION(
"recv with invalid socket") {
132 std::array<zmq::message_t, 1>
msgs;