Browse Source

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152333 91177308-0d34-0410-b5e6-96231b3b80d8

Argyrios Kyrtzidis 13 years ago
parent
commit
2a6dc143b6
1 changed files with 11 additions and 1 deletions
  1. 11 1
      utils/FuzzTest

+ 11 - 1
utils/FuzzTest

@@ -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()