filter-subunit: added a --fail-immediately option
authorAndrew Tridgell <tridge@samba.org>
Mon, 27 Sep 2010 01:56:50 +0000 (18:56 -0700)
committerJelmer Vernooij <jelmer@samba.org>
Tue, 28 Sep 2010 07:12:38 +0000 (09:12 +0200)
selftest/filter-subunit
selftest/subunithelper.py

index f5ab660350d107bbfbcc896e7ae6aaf53e1bd230..9b46d616f475b12dc7803c18191c15de82c9b33c 100755 (executable)
@@ -19,6 +19,8 @@ parser.add_option("--expected-failures", type="string",
             "failures")
 parser.add_option("--strip-passed-output", action="store_true", 
     help="Whether to strip output from tests that passed")
+parser.add_option("--fail-immediately", action="store_true", 
+    help="Whether to stop on the first error", default=False)
 
 parser.add_option("--prefix", type="string",
        help="Add prefix to all test names")
@@ -45,6 +47,7 @@ signal.signal(signal.SIGINT, handle_sigint)
 
 out = subunithelper.SubunitOps(sys.stdout)
 msg_ops = subunithelper.FilterOps(out, opts.prefix, expected_failures,
-       opts.strip_passed_output)
+                                 opts.strip_passed_output,
+                                 fail_immediately=opts.fail_immediately)
 
 sys.exit(subunithelper.parse_results(msg_ops, statistics, sys.stdin))
index 2a5d9ecc2025167806874cf7fa763730496283bf..c9d3daaaba0280a849586b6fda0d81189b018d38 100644 (file)
@@ -258,6 +258,8 @@ class FilterOps(testtools.testresult.TestResult):
         self.total_error+=1
         self._ops.addError(test, details)
         self.output = None
+        if self.fail_immediately:
+            raise Exception("test failed and fail_immediately set")
 
     def addSkip(self, test, details=None):
         test = self._add_prefix(test)
@@ -287,6 +289,8 @@ class FilterOps(testtools.testresult.TestResult):
             if self.output:
                 self._ops.output_msg(self.output)
         self.output = None
+        if self.fail_immediately:
+            raise Exception("test failed and fail_immediately set")
 
     def addSuccess(self, test, details=None):
         test = self._add_prefix(test)
@@ -327,7 +331,7 @@ class FilterOps(testtools.testresult.TestResult):
 
         self._ops.end_testsuite(name, result, reason)
 
-    def __init__(self, out, prefix, expected_failures, strip_ok_output):
+    def __init__(self, out, prefix, expected_failures, strip_ok_output, fail_immediately=False):
         self._ops = out
         self.output = None
         self.prefix = prefix
@@ -339,3 +343,5 @@ class FilterOps(testtools.testresult.TestResult):
         self.total_error = 0
         self.total_fail = 0
         self.error_added = 0
+        self.fail_immediately = fail_immediately
+