@@ -18,6 +18,9 @@ static_assert(!std::is_copy_constructible<zmq::active_poller_t>::value,
18
18
static_assert (!std::is_copy_assignable<zmq::active_poller_t >::value,
19
19
" active_active_poller_t should not be copy-assignable" );
20
20
21
+ static const zmq::active_poller_t ::handler_type no_op_handler =
22
+ [](zmq::event_flags) {};
23
+
21
24
TEST_CASE (" move construct empty" , " [active_poller]" )
22
25
{
23
26
zmq::active_poller_t a;
@@ -63,7 +66,7 @@ TEST_CASE("move assign non empty", "[active_poller]")
63
66
zmq::socket_t socket{context, zmq::socket_type::router};
64
67
65
68
zmq::active_poller_t a;
66
- a.add (socket, zmq::event_flags::pollin, [](zmq::event_flags) {} );
69
+ a.add (socket, zmq::event_flags::pollin, no_op_handler );
67
70
CHECK_FALSE (a.empty ());
68
71
CHECK (1u == a.size ());
69
72
zmq::active_poller_t b;
@@ -75,12 +78,22 @@ TEST_CASE("move assign non empty", "[active_poller]")
75
78
}
76
79
77
80
TEST_CASE (" add handler" , " [active_poller]" )
81
+ {
82
+ zmq::context_t context;
83
+ zmq::socket_t socket{context, zmq::socket_type::router};
84
+ zmq::active_poller_t active_poller;
85
+ CHECK_NOTHROW (
86
+ active_poller.add (socket, zmq::event_flags::pollin, no_op_handler));
87
+ }
88
+
89
+ TEST_CASE (" add null handler fails" , " [active_poller]" )
78
90
{
79
91
zmq::context_t context;
80
92
zmq::socket_t socket{context, zmq::socket_type::router};
81
93
zmq::active_poller_t active_poller;
82
94
zmq::active_poller_t ::handler_type handler;
83
- CHECK_NOTHROW (active_poller.add (socket, zmq::event_flags::pollin, handler));
95
+ CHECK_THROWS_AS (active_poller.add (socket, zmq::event_flags::pollin, handler),
96
+ const std::invalid_argument &);
84
97
}
85
98
86
99
#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 3, 0)
@@ -90,11 +103,10 @@ TEST_CASE("add handler invalid events type", "[active_poller]")
90
103
zmq::context_t context;
91
104
zmq::socket_t socket{context, zmq::socket_type::router};
92
105
zmq::active_poller_t active_poller;
93
- zmq::active_poller_t ::handler_type handler;
94
106
short invalid_events_type = 2 << 10 ;
95
107
CHECK_THROWS_AS (
96
108
active_poller.add (socket, static_cast <zmq::event_flags>(invalid_events_type),
97
- handler ),
109
+ no_op_handler ),
98
110
const zmq::error_t &);
99
111
CHECK (active_poller.empty ());
100
112
CHECK (0u == active_poller.size ());
@@ -106,15 +118,16 @@ TEST_CASE("add handler twice throws", "[active_poller]")
106
118
zmq::context_t context;
107
119
zmq::socket_t socket{context, zmq::socket_type::router};
108
120
zmq::active_poller_t active_poller;
109
- zmq::active_poller_t ::handler_type handler ;
110
- active_poller. add (socket, zmq::event_flags::pollin, handler);
111
- CHECK_THROWS_ZMQ_ERROR ( EINVAL, active_poller.add (socket, zmq::event_flags::pollin, handler ));
121
+ active_poller. add (socket, zmq::event_flags::pollin, no_op_handler) ;
122
+ CHECK_THROWS_ZMQ_ERROR (
123
+ EINVAL, active_poller.add (socket, zmq::event_flags::pollin, no_op_handler ));
112
124
}
113
125
114
126
TEST_CASE (" wait with no handlers throws" , " [active_poller]" )
115
127
{
116
128
zmq::active_poller_t active_poller;
117
- CHECK_THROWS_ZMQ_ERROR (EFAULT, active_poller.wait (std::chrono::milliseconds{10 }));
129
+ CHECK_THROWS_ZMQ_ERROR (EFAULT,
130
+ active_poller.wait (std::chrono::milliseconds{10 }));
118
131
}
119
132
120
133
TEST_CASE (" remove unregistered throws" , " [active_poller]" )
@@ -130,8 +143,7 @@ TEST_CASE("remove registered empty", "[active_poller]")
130
143
zmq::context_t context;
131
144
zmq::socket_t socket{context, zmq::socket_type::router};
132
145
zmq::active_poller_t active_poller;
133
- active_poller.add (socket, zmq::event_flags::pollin,
134
- zmq::active_poller_t ::handler_type{});
146
+ active_poller.add (socket, zmq::event_flags::pollin, no_op_handler);
135
147
CHECK_NOTHROW (active_poller.remove (socket));
136
148
}
137
149
@@ -140,7 +152,7 @@ TEST_CASE("remove registered non empty", "[active_poller]")
140
152
zmq::context_t context;
141
153
zmq::socket_t socket{context, zmq::socket_type::router};
142
154
zmq::active_poller_t active_poller;
143
- active_poller.add (socket, zmq::event_flags::pollin, [](zmq::event_flags) {} );
155
+ active_poller.add (socket, zmq::event_flags::pollin, no_op_handler );
144
156
CHECK_NOTHROW (active_poller.remove (socket));
145
157
}
146
158
@@ -223,8 +235,7 @@ TEST_CASE("add invalid socket throws", "[active_poller]")
223
235
zmq::active_poller_t active_poller;
224
236
zmq::socket_t a{context, zmq::socket_type::router};
225
237
zmq::socket_t b{std::move (a)};
226
- CHECK_THROWS_AS (active_poller.add (a, zmq::event_flags::pollin,
227
- zmq::active_poller_t ::handler_type{}),
238
+ CHECK_THROWS_AS (active_poller.add (a, zmq::event_flags::pollin, no_op_handler),
228
239
const zmq::error_t &);
229
240
}
230
241
@@ -233,8 +244,8 @@ TEST_CASE("remove invalid socket throws", "[active_poller]")
233
244
zmq::context_t context;
234
245
zmq::socket_t socket{context, zmq::socket_type::router};
235
246
zmq::active_poller_t active_poller;
236
- CHECK_NOTHROW (active_poller. add (socket, zmq::event_flags::pollin,
237
- zmq::active_poller_t ::handler_type{} ));
247
+ CHECK_NOTHROW (
248
+ active_poller. add (socket, zmq::event_flags::pollin, no_op_handler ));
238
249
CHECK (1u == active_poller.size ());
239
250
std::vector<zmq::socket_t > sockets;
240
251
sockets.emplace_back (std::move (socket));
@@ -247,8 +258,8 @@ TEST_CASE("wait on added empty handler", "[active_poller]")
247
258
server_client_setup s;
248
259
CHECK_NOTHROW (s.client .send (zmq::message_t {hi_str}, zmq::send_flags::none));
249
260
zmq::active_poller_t active_poller;
250
- zmq:: active_poller_t ::handler_type handler;
251
- CHECK_NOTHROW ( active_poller.add (s.server , zmq::event_flags::pollin, handler ));
261
+ CHECK_NOTHROW (
262
+ active_poller.add (s.server , zmq::event_flags::pollin, no_op_handler ));
252
263
CHECK_NOTHROW (active_poller.wait (std::chrono::milliseconds{-1 }));
253
264
}
254
265
@@ -277,8 +288,7 @@ TEST_CASE("modify not added throws", "[active_poller]")
277
288
zmq::socket_t a{context, zmq::socket_type::push};
278
289
zmq::socket_t b{context, zmq::socket_type::push};
279
290
zmq::active_poller_t active_poller;
280
- CHECK_NOTHROW (active_poller.add (a, zmq::event_flags::pollin,
281
- zmq::active_poller_t ::handler_type{}));
291
+ CHECK_NOTHROW (active_poller.add (a, zmq::event_flags::pollin, no_op_handler));
282
292
CHECK_THROWS_AS (active_poller.modify (b, zmq::event_flags::pollin),
283
293
const zmq::error_t &);
284
294
}
@@ -288,8 +298,7 @@ TEST_CASE("modify simple", "[active_poller]")
288
298
zmq::context_t context;
289
299
zmq::socket_t a{context, zmq::socket_type::push};
290
300
zmq::active_poller_t active_poller;
291
- CHECK_NOTHROW (active_poller.add (a, zmq::event_flags::pollin,
292
- zmq::active_poller_t ::handler_type{}));
301
+ CHECK_NOTHROW (active_poller.add (a, zmq::event_flags::pollin, no_op_handler));
293
302
CHECK_NOTHROW (
294
303
active_poller.modify (a, zmq::event_flags::pollin | zmq::event_flags::pollout));
295
304
}
@@ -342,8 +351,7 @@ TEST_CASE("wait on move constructed active_poller", "[active_poller]")
342
351
server_client_setup s;
343
352
CHECK_NOTHROW (s.client .send (zmq::message_t {hi_str}, zmq::send_flags::none));
344
353
zmq::active_poller_t a;
345
- zmq::active_poller_t ::handler_type handler;
346
- CHECK_NOTHROW (a.add (s.server , zmq::event_flags::pollin, handler));
354
+ CHECK_NOTHROW (a.add (s.server , zmq::event_flags::pollin, no_op_handler));
347
355
zmq::active_poller_t b{std::move (a)};
348
356
CHECK (1u == b.size ());
349
357
CHECK (0u == a.size ());
@@ -356,8 +364,7 @@ TEST_CASE("wait on move assigned active_poller", "[active_poller]")
356
364
server_client_setup s;
357
365
CHECK_NOTHROW (s.client .send (zmq::message_t {hi_str}, zmq::send_flags::none));
358
366
zmq::active_poller_t a;
359
- zmq::active_poller_t ::handler_type handler;
360
- CHECK_NOTHROW (a.add (s.server , zmq::event_flags::pollin, handler));
367
+ CHECK_NOTHROW (a.add (s.server , zmq::event_flags::pollin, no_op_handler));
361
368
zmq::active_poller_t b;
362
369
b = {std::move (a)};
363
370
CHECK (1u == b.size ());
0 commit comments