@@ -358,25 +358,19 @@ def _check_dump_tracebacks_later(self, repeat, cancel, filename):
358358import time
359359
360360def func(repeat, cancel, timeout):
361+ if cancel:
362+ faulthandler.cancel_dump_tracebacks_later()
363+
361364 pause = timeout * 2.5
362365 # on Windows XP, b-a gives 1.249931 after sleep(1.25)
363366 min_pause = pause * 0.9
364367 a = time.time()
365368 time.sleep(pause)
366- faulthandler.cancel_dump_tracebacks_later()
367369 b = time.time()
370+ faulthandler.cancel_dump_tracebacks_later()
368371 # Check that sleep() was not interrupted
369372 assert (b - a) >= min_pause, "{{}} < {{}}".format(b - a, min_pause)
370373
371- if cancel:
372- pause = timeout * 1.5
373- min_pause = pause * 0.9
374- a = time.time()
375- time.sleep(pause)
376- b = time.time()
377- # Check that sleep() was not interrupted
378- assert (b - a) >= min_pause, "{{}} < {{}}".format(b - a, min_pause)
379-
380374timeout = {timeout}
381375repeat = {repeat}
382376cancel = {cancel}
@@ -400,13 +394,16 @@ def func(repeat, cancel, timeout):
400394 trace , exitcode = self .get_output (code , filename )
401395 trace = '\n ' .join (trace )
402396
403- if repeat :
404- count = 2
397+ if not cancel :
398+ if repeat :
399+ count = 2
400+ else :
401+ count = 1
402+ header = 'Thread 0x[0-9a-f]+:\n '
403+ regex = expected_traceback (12 , 27 , header , count = count )
404+ self .assertRegex (trace , regex )
405405 else :
406- count = 1
407- header = 'Thread 0x[0-9a-f]+:\n '
408- regex = expected_traceback (9 , 33 , header , count = count )
409- self .assertRegex (trace , regex )
406+ self .assertEqual (trace , '' )
410407 self .assertEqual (exitcode , 0 )
411408
412409 @unittest .skipIf (not hasattr (faulthandler , 'dump_tracebacks_later' ),
@@ -425,8 +422,8 @@ def test_dump_tracebacks_later(self):
425422 def test_dump_tracebacks_later_repeat (self ):
426423 self .check_dump_tracebacks_later (repeat = True )
427424
428- def test_dump_tracebacks_later_repeat_cancel (self ):
429- self .check_dump_tracebacks_later (repeat = True , cancel = True )
425+ def test_dump_tracebacks_later_cancel (self ):
426+ self .check_dump_tracebacks_later (cancel = True )
430427
431428 def test_dump_tracebacks_later_file (self ):
432429 self .check_dump_tracebacks_later (file = True )
0 commit comments