Skip to content

Commit 625a0eb

Browse files
committed
Unit tests for poller's move operations
1 parent 559d373 commit 625a0eb

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

tests/poller.cpp

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,59 @@ TEST(poller, wait_one_return)
361361
ASSERT_EQ(count, result);
362362
}
363363

364+
TEST(poller, wait_on_move_constructed_poller)
365+
{
366+
server_client_setup s;
367+
ASSERT_NO_THROW (s.client.send ("Hi"));
368+
zmq::poller_t a;
369+
zmq::poller_t::handler_t handler;
370+
ASSERT_NO_THROW (a.add (s.server, ZMQ_POLLIN, handler));
371+
ASSERT_EQ(1u, a.size ());
372+
zmq::poller_t b {std::move (a)};
373+
ASSERT_EQ(1u, b.size ());
374+
ASSERT_NO_THROW (b.wait (std::chrono::milliseconds {-1}));
375+
}
376+
377+
TEST(poller, wait_on_move_assign_poller)
378+
{
379+
server_client_setup s;
380+
ASSERT_NO_THROW (s.client.send ("Hi"));
381+
zmq::poller_t a;
382+
zmq::poller_t::handler_t handler;
383+
ASSERT_NO_THROW (a.add (s.server, ZMQ_POLLIN, handler));
384+
ASSERT_EQ(1u, a.size ());
385+
zmq::poller_t b;
386+
ASSERT_EQ(0u, b.size ());
387+
b = {std::move (a)};
388+
ASSERT_EQ(1u, b.size ());
389+
ASSERT_NO_THROW (b.wait (std::chrono::milliseconds {-1}));
390+
}
391+
392+
TEST(poller, received_on_move_construced_poller)
393+
{
394+
// Setup server and client
395+
server_client_setup s;
396+
int count = 0;
397+
// Setup poller a
398+
zmq::poller_t a;
399+
ASSERT_NO_THROW(a.add(s.server, ZMQ_POLLIN, [&count](short) {
400+
++count;
401+
}));
402+
// client sends message
403+
ASSERT_NO_THROW(s.client.send("Hi"));
404+
// wait for message and verify it is received
405+
a.wait(std::chrono::milliseconds{500});
406+
ASSERT_EQ(1u, count);
407+
// Move construct poller b
408+
zmq::poller_t b{std::move(a)};
409+
// client sends message again
410+
ASSERT_NO_THROW(s.client.send("Hi"));
411+
// wait for message and verify it is received
412+
b.wait(std::chrono::milliseconds{500});
413+
ASSERT_EQ(2u, count);
414+
}
415+
416+
364417
TEST(poller, remove_from_handler)
365418
{
366419
constexpr auto ITER_NO = 10;

0 commit comments

Comments
 (0)