| """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) |