@@ -18,6 +18,9 @@ static_assert(!std::is_copy_constructible<zmq::active_poller_t>::value,
1818static_assert (!std::is_copy_assignable<zmq::active_poller_t >::value,
1919 " active_active_poller_t should not be copy-assignable" );
2020
21+ static const zmq::active_poller_t ::handler_type no_op_handler =
22+ [](zmq::event_flags) {};
23+
2124TEST_CASE (" move construct empty" , " [active_poller]" )
2225{
2326 zmq::active_poller_t a;
@@ -63,7 +66,7 @@ TEST_CASE("move assign non empty", "[active_poller]")
6366 zmq::socket_t socket{context, zmq::socket_type::router};
6467
6568 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 );
6770 CHECK_FALSE (a.empty ());
6871 CHECK (1u == a.size ());
6972 zmq::active_poller_t b;
@@ -75,12 +78,22 @@ TEST_CASE("move assign non empty", "[active_poller]")
7578}
7679
7780TEST_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]" )
7890{
7991 zmq::context_t context;
8092 zmq::socket_t socket{context, zmq::socket_type::router};
8193 zmq::active_poller_t active_poller;
8294 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 &);
8497}
8598
8699#if ZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 3, 0)
@@ -90,11 +103,10 @@ TEST_CASE("add handler invalid events type", "[active_poller]")
90103 zmq::context_t context;
91104 zmq::socket_t socket{context, zmq::socket_type::router};
92105 zmq::active_poller_t active_poller;
93- zmq::active_poller_t ::handler_type handler;
94106 short invalid_events_type = 2 << 10 ;
95107 CHECK_THROWS_AS (
96108 active_poller.add (socket, static_cast <zmq::event_flags>(invalid_events_type),
97- handler ),
109+ no_op_handler ),
98110 const zmq::error_t &);
99111 CHECK (active_poller.empty ());
100112 CHECK (0u == active_poller.size ());
@@ -106,15 +118,16 @@ TEST_CASE("add handler twice throws", "[active_poller]")
106118 zmq::context_t context;
107119 zmq::socket_t socket{context, zmq::socket_type::router};
108120 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 ));
112124}
113125
114126TEST_CASE (" wait with no handlers throws" , " [active_poller]" )
115127{
116128 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 }));
118131}
119132
120133TEST_CASE (" remove unregistered throws" , " [active_poller]" )
@@ -130,8 +143,7 @@ TEST_CASE("remove registered empty", "[active_poller]")
130143 zmq::context_t context;
131144 zmq::socket_t socket{context, zmq::socket_type::router};
132145 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);
135147 CHECK_NOTHROW (active_poller.remove (socket));
136148}
137149
@@ -140,7 +152,7 @@ TEST_CASE("remove registered non empty", "[active_poller]")
140152 zmq::context_t context;
141153 zmq::socket_t socket{context, zmq::socket_type::router};
142154 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 );
144156 CHECK_NOTHROW (active_poller.remove (socket));
145157}
146158
@@ -223,8 +235,7 @@ TEST_CASE("add invalid socket throws", "[active_poller]")
223235 zmq::active_poller_t active_poller;
224236 zmq::socket_t a{context, zmq::socket_type::router};
225237 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),
228239 const zmq::error_t &);
229240}
230241
@@ -233,8 +244,8 @@ TEST_CASE("remove invalid socket throws", "[active_poller]")
233244 zmq::context_t context;
234245 zmq::socket_t socket{context, zmq::socket_type::router};
235246 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 ));
238249 CHECK (1u == active_poller.size ());
239250 std::vector<zmq::socket_t > sockets;
240251 sockets.emplace_back (std::move (socket));
@@ -247,8 +258,8 @@ TEST_CASE("wait on added empty handler", "[active_poller]")
247258 server_client_setup s;
248259 CHECK_NOTHROW (s.client .send (zmq::message_t {hi_str}, zmq::send_flags::none));
249260 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 ));
252263 CHECK_NOTHROW (active_poller.wait (std::chrono::milliseconds{-1 }));
253264}
254265
@@ -277,8 +288,7 @@ TEST_CASE("modify not added throws", "[active_poller]")
277288 zmq::socket_t a{context, zmq::socket_type::push};
278289 zmq::socket_t b{context, zmq::socket_type::push};
279290 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));
282292 CHECK_THROWS_AS (active_poller.modify (b, zmq::event_flags::pollin),
283293 const zmq::error_t &);
284294}
@@ -288,8 +298,7 @@ TEST_CASE("modify simple", "[active_poller]")
288298 zmq::context_t context;
289299 zmq::socket_t a{context, zmq::socket_type::push};
290300 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));
293302 CHECK_NOTHROW (
294303 active_poller.modify (a, zmq::event_flags::pollin | zmq::event_flags::pollout));
295304}
@@ -342,8 +351,7 @@ TEST_CASE("wait on move constructed active_poller", "[active_poller]")
342351 server_client_setup s;
343352 CHECK_NOTHROW (s.client .send (zmq::message_t {hi_str}, zmq::send_flags::none));
344353 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));
347355 zmq::active_poller_t b{std::move (a)};
348356 CHECK (1u == b.size ());
349357 CHECK (0u == a.size ());
@@ -356,8 +364,7 @@ TEST_CASE("wait on move assigned active_poller", "[active_poller]")
356364 server_client_setup s;
357365 CHECK_NOTHROW (s.client .send (zmq::message_t {hi_str}, zmq::send_flags::none));
358366 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));
361368 zmq::active_poller_t b;
362369 b = {std::move (a)};
363370 CHECK (1u == b.size ());
0 commit comments