[utils/FuzzTest] Add '--stop-on-fail' to stop the script on the first failure

without reverting the changes.

llvm-svn: 152333
This commit is contained in:
Argyrios Kyrtzidis 2012-03-08 20:29:39 +00:00
parent 47c32287d9
commit 8b0f3e0525
1 changed files with 11 additions and 1 deletions

View File

@ -156,6 +156,7 @@ def run_one_test(test_application, index, input_files, args):
print 'FAIL: %d' % index print 'FAIL: %d' % index
elif not opts.succinct: elif not opts.succinct:
print 'PASS: %d' % index print 'PASS: %d' % index
return test_result
def main(): def main():
global opts global opts
@ -194,6 +195,10 @@ printf format, and VARIABLE is one of:
By default, the script will run forever continually picking new tests to By default, the script will run forever continually picking new tests to
run. You can limit the number of tests that are run with '--max-tests <number>', run. You can limit the number of tests that are run with '--max-tests <number>',
and you can run a particular test with '--test <index>'. and you can run a particular test with '--test <index>'.
You can specify '--stop-on-fail' to stop the script on the first failure
without reverting the changes.
""") """)
parser.add_option("-v", "--verbose", help="Show more output", parser.add_option("-v", "--verbose", help="Show more output",
action='store_true', dest="verbose", default=False) action='store_true', dest="verbose", default=False)
@ -244,6 +249,8 @@ and you can run a particular test with '--test <index>'.
action='store_false', dest="enable_replace", default=True) action='store_false', dest="enable_replace", default=True)
group.add_option("", "--no-revert", help="Don't revert changes", group.add_option("", "--no-revert", help="Don't revert changes",
action='store_false', dest="revert", default=True) action='store_false', dest="revert", default=True)
group.add_option("", "--stop-on-fail", help="Stop on first failure",
action='store_true', dest="stop_on_fail", default=False)
parser.add_option_group(group) parser.add_option_group(group)
group = OptionGroup(parser, "Test Selection") group = OptionGroup(parser, "Test Selection")
@ -329,7 +336,10 @@ and you can run a particular test with '--test <index>'.
ta = TestApplication(tg, t) ta = TestApplication(tg, t)
try: try:
ta.apply() ta.apply()
run_one_test(ta, test, input_files, args) test_result = run_one_test(ta, test, input_files, args)
if not test_result and opts.stop_on_fail:
opts.revert = False
sys.exit(1)
finally: finally:
if opts.revert: if opts.revert:
ta.revert() ta.revert()