diff options
author | Todd Fiala <todd.fiala@gmail.com> | 2015-12-14 21:28:46 +0000 |
---|---|---|
committer | Todd Fiala <todd.fiala@gmail.com> | 2015-12-14 21:28:46 +0000 |
commit | 685a7570ecfa07fda30be12098bf5e6d392d1e4d (patch) | |
tree | feb9dde6f0e0329d172265b96757861dadf395ab /lldb/packages/Python/lldbsuite/test/issue_verification/rerun_base.py | |
parent | e1eb5e39f5c4bc2d66bec4cc7895fbac85a3dc3f (diff) | |
download | bcm5719-llvm-685a7570ecfa07fda30be12098bf5e6d392d1e4d.tar.gz bcm5719-llvm-685a7570ecfa07fda30be12098bf5e6d392d1e4d.zip |
test infra: enable single-worker rerun phase for flakey tests.
Use of --rerun-all-issues will enable any test method failure, not just
test methods marked with the flakey decorator, to rerun.
Currently this does not change the flakey logic's immediate rerun
attempt. I want to make sure this doesn't cause any significant issues
before changing that part.
The rerun reporting is only known to work properly with the
default (new) BasicResultsFormatter reporting. Once we work out
any issues, I'll go back and make sure the curses output handles
it properly as well.
llvm-svn: 255543
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/issue_verification/rerun_base.py')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/issue_verification/rerun_base.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/issue_verification/rerun_base.py b/lldb/packages/Python/lldbsuite/test/issue_verification/rerun_base.py new file mode 100644 index 00000000000..2ce775dced1 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/issue_verification/rerun_base.py @@ -0,0 +1,28 @@ +from __future__ import print_function + +import os + +import lldbsuite.test.lldbtest as lldbtest + + +# pylint: disable=too-few-public-methods +class RerunBaseTestCase(lldbtest.TestBase): + """Forces test failure.""" + mydir = lldbtest.TestBase.compute_mydir(__file__) + + def should_generate_issue(self): + """Returns whether a test issue should be generated. + + @returns True on the first and every other call via a given + test method. + """ + should_pass_filename = "{}.{}.succeed-marker".format( + __file__, self.id()) + fail = not os.path.exists(should_pass_filename) + if fail: + # Create the marker so that next call to this passes. + open(should_pass_filename, 'w').close() + else: + # Delete the marker so next time we fail. + os.remove(should_pass_filename) + return fail |