"""Tests that a timeout is detected by the testbot.""" from __future__ import print_function import atexit import time from lldbsuite.test import decorators import rerun_base class RerunTimeoutTestCase(rerun_base.RerunBaseTestCase): def maybe_do_timeout(self): # Do the timeout here if we're going to time out. if self.should_generate_issue(): # We time out this time. while True: try: time.sleep(1) except: print("ignoring exception during sleep") # call parent super(RerunTimeoutTestCase, self).tearDown() @decorators.no_debug_info_test def test_timeout_file_level_timeout_rerun_succeeds(self): """Tests that file-level timeout is cleared on rerun.""" # This test just needs to pass. It is the exit hook (outside # the test method) that will time out. # Add the exit handler that will time out the first time around. atexit.register(RerunTimeoutTestCase.maybe_do_timeout, self)