9
9
TEST (poller, create_destroy)
10
10
{
11
11
zmq::poller_t poller;
12
+ ASSERT_TRUE (poller.empty ());
12
13
}
13
14
14
15
static_assert (!std::is_copy_constructible<zmq::poller_t >::value, " poller_t should not be copy-constructible" );
15
16
static_assert (!std::is_copy_assignable<zmq::poller_t >::value, " poller_t should not be copy-assignable" );
16
17
17
18
TEST (poller, move_construct_empty)
18
19
{
19
- std::unique_ptr<zmq::poller_t > a{new zmq::poller_t };
20
- zmq::poller_t b = std::move (*a);
21
-
20
+ std::unique_ptr<zmq::poller_t > a {new zmq::poller_t };
21
+ ASSERT_TRUE (a->empty ());
22
+ zmq::poller_t b = std::move (*a);
23
+ ASSERT_TRUE (b.empty ());
24
+ ASSERT_EQ (0u , a->size ());
25
+ ASSERT_EQ (0u , b.size ());
22
26
a.reset ();
23
27
}
24
28
25
29
TEST (poller, move_assign_empty)
26
30
{
27
31
std::unique_ptr<zmq::poller_t > a{new zmq::poller_t };
32
+ ASSERT_TRUE (a->empty ());
28
33
zmq::poller_t b;
29
-
34
+ ASSERT_TRUE (b. empty ());
30
35
b = std::move (*a);
31
-
36
+ ASSERT_EQ (0u , a->size ());
37
+ ASSERT_EQ (0u , b.size ());
38
+ ASSERT_TRUE (a->empty ());
39
+ ASSERT_TRUE (b.empty ());
32
40
a.reset ();
33
41
}
34
42
@@ -39,8 +47,13 @@ TEST(poller, move_construct_non_empty)
39
47
40
48
std::unique_ptr<zmq::poller_t > a{new zmq::poller_t };
41
49
a->add (socket, ZMQ_POLLIN, [](short ) {});
42
- zmq::poller_t b = std::move (*a);
43
-
50
+ ASSERT_FALSE (a->empty ());
51
+ ASSERT_EQ (1u , a->size ());
52
+ zmq::poller_t b = std::move (*a);
53
+ ASSERT_TRUE (a->empty ());
54
+ ASSERT_EQ (0u , a->size ());
55
+ ASSERT_FALSE (b.empty ());
56
+ ASSERT_EQ (1u , b.size ());
44
57
a.reset ();
45
58
}
46
59
@@ -51,10 +64,14 @@ TEST(poller, move_assign_non_empty)
51
64
52
65
std::unique_ptr<zmq::poller_t > a{new zmq::poller_t };
53
66
a->add (socket, ZMQ_POLLIN, [](short ) {});
67
+ ASSERT_FALSE (a->empty ());
68
+ ASSERT_EQ (1u , a->size ());
54
69
zmq::poller_t b;
55
-
56
70
b = std::move (*a);
57
-
71
+ ASSERT_TRUE (a->empty ());
72
+ ASSERT_EQ (0u , a->size ());
73
+ ASSERT_FALSE (b.empty ());
74
+ ASSERT_EQ (1u , b.size ());
58
75
a.reset ();
59
76
}
60
77
@@ -75,6 +92,8 @@ TEST(poller, add_handler_invalid_events_type)
75
92
zmq::poller_t ::handler_t handler;
76
93
short invalid_events_type = 2 << 10 ;
77
94
ASSERT_NO_THROW (poller.add (socket, invalid_events_type, handler));
95
+ ASSERT_FALSE (poller.empty ());
96
+ ASSERT_EQ (1u , poller.size ());
78
97
}
79
98
80
99
TEST (poller, add_handler_twice_throws)
@@ -229,7 +248,7 @@ TEST(poller, client_server)
229
248
ASSERT_EQ (events, ZMQ_POLLOUT);
230
249
}
231
250
232
- TEST (poller, poller_add_invalid_socket_throws )
251
+ TEST (poller, add_invalid_socket_throws )
233
252
{
234
253
zmq::context_t context;
235
254
zmq::poller_t poller;
@@ -239,15 +258,17 @@ TEST(poller, poller_add_invalid_socket_throws)
239
258
zmq::error_t );
240
259
}
241
260
242
- TEST (poller, poller_remove_invalid_socket_throws )
261
+ TEST (poller, remove_invalid_socket_throws )
243
262
{
244
263
zmq::context_t context;
245
264
zmq::socket_t socket {context, zmq::socket_type::router};
246
265
zmq::poller_t poller;
247
266
ASSERT_NO_THROW (poller.add (socket, ZMQ_POLLIN, zmq::poller_t ::handler_t {}));
267
+ ASSERT_EQ (1u , poller.size ());
248
268
std::vector<zmq::socket_t > sockets;
249
269
sockets.emplace_back (std::move (socket));
250
270
ASSERT_THROW (poller.remove (socket), zmq::error_t );
271
+ ASSERT_EQ (1u , poller.size ());
251
272
}
252
273
253
274
TEST (poller, wait_on_added_empty_handler)
@@ -354,9 +375,11 @@ TEST(poller, remove_from_handler)
354
375
for (auto i = 0 ; i < ITER_NO; ++i) {
355
376
ASSERT_NO_THROW (poller.add (setup_list[i].server , ZMQ_POLLIN, [&,i](short events) {
356
377
ASSERT_EQ (events, ZMQ_POLLIN);
357
- poller.remove (setup_list[ITER_NO - i -1 ].server );
378
+ poller.remove (setup_list[ITER_NO-i-1 ].server );
379
+ ASSERT_EQ (ITER_NO-i-1 , poller.size ());
358
380
}));
359
381
}
382
+ ASSERT_EQ (ITER_NO, poller.size ());
360
383
// Clients send messages
361
384
for (auto & s : setup_list) {
362
385
ASSERT_NO_THROW (s.client .send (" Hi" ));
0 commit comments