@@ -315,8 +315,8 @@ class SelectEINTRTest(EINTRBaseTest):
315315 def test_select (self ):
316316 t0 = time .monotonic ()
317317 select .select ([], [], [], self .sleep_time )
318- self .stop_alarm ()
319318 dt = time .monotonic () - t0
319+ self .stop_alarm ()
320320 self .assertGreaterEqual (dt , self .sleep_time )
321321
322322 @unittest .skipUnless (hasattr (select , 'poll' ), 'need select.poll' )
@@ -325,8 +325,8 @@ def test_poll(self):
325325
326326 t0 = time .monotonic ()
327327 poller .poll (self .sleep_time * 1e3 )
328- self .stop_alarm ()
329328 dt = time .monotonic () - t0
329+ self .stop_alarm ()
330330 self .assertGreaterEqual (dt , self .sleep_time )
331331
332332 @unittest .skipUnless (hasattr (select , 'epoll' ), 'need select.epoll' )
@@ -336,8 +336,30 @@ def test_epoll(self):
336336
337337 t0 = time .monotonic ()
338338 poller .poll (self .sleep_time )
339+ dt = time .monotonic () - t0
340+ self .stop_alarm ()
341+ self .assertGreaterEqual (dt , self .sleep_time )
342+
343+ @unittest .skipUnless (hasattr (select , 'kqueue' ), 'need select.kqueue' )
344+ def test_kqueue (self ):
345+ kqueue = select .kqueue ()
346+ self .addCleanup (kqueue .close )
347+
348+ t0 = time .monotonic ()
349+ kqueue .control (None , 1 , self .sleep_time )
350+ dt = time .monotonic () - t0
339351 self .stop_alarm ()
352+ self .assertGreaterEqual (dt , self .sleep_time )
353+
354+ @unittest .skipUnless (hasattr (select , 'devpoll' ), 'need select.devpoll' )
355+ def test_devpoll (self ):
356+ poller = select .devpoll ()
357+ self .addCleanup (poller .close )
358+
359+ t0 = time .monotonic ()
360+ poller .poll (self .sleep_time * 1e3 )
340361 dt = time .monotonic () - t0
362+ self .stop_alarm ()
341363 self .assertGreaterEqual (dt , self .sleep_time )
342364
343365
0 commit comments