summaryrefslogtreecommitdiff
path: root/selftest/subunithelper.py
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2011-12-04 00:23:02 +0100
committerJelmer Vernooij <jelmer@samba.org>2011-12-05 23:11:04 +0100
commite62654578b3aa1ddafd8faf85b65d9702f49fba3 (patch)
treef6ab370e1d31389220acc5678f55d4097dc78686 /selftest/subunithelper.py
parent5643d37a000971070b22af7c2710f66b49b57eff (diff)
downloadsamba-e62654578b3aa1ddafd8faf85b65d9702f49fba3.tar.gz
samba-e62654578b3aa1ddafd8faf85b65d9702f49fba3.tar.bz2
samba-e62654578b3aa1ddafd8faf85b65d9702f49fba3.zip
selftest: Add --flapping argument to filter-subunit.
Diffstat (limited to 'selftest/subunithelper.py')
-rw-r--r--selftest/subunithelper.py28
1 files changed, 26 insertions, 2 deletions
diff --git a/selftest/subunithelper.py b/selftest/subunithelper.py
index c59b6d002c..c29bdbabf0 100644
--- a/selftest/subunithelper.py
+++ b/selftest/subunithelper.py
@@ -288,6 +288,8 @@ class FilterOps(testtools.testresult.TestResult):
def addFailure(self, test, details=None):
test = self._add_prefix(test)
xfail_reason = find_in_list(self.expected_failures, test.id())
+ if xfail_reason is None:
+ xfail_reason = find_in_list(self.flapping, test.id())
if xfail_reason is not None:
self.xfail_added+=1
self.total_xfail+=1
@@ -308,7 +310,21 @@ class FilterOps(testtools.testresult.TestResult):
def addSuccess(self, test, details=None):
test = self._add_prefix(test)
- self._ops.addSuccess(test, details)
+ xfail_reason = find_in_list(self.expected_failures, test.id())
+ if xfail_reason is not None:
+ self.uxsuccess_added += 1
+ self.total_uxsuccess += 1
+ if details is not None:
+ details = subunit.RemoteError(unicode(details[1]) + xfail_reason.decode("utf-8"))
+ else:
+ details = subunit.RemoteError(xfail_reason.decode("utf-8"))
+ self._ops.addUnexpectedSuccess(test, details)
+ if self.output:
+ self._ops.output_msg(self.output)
+ if self.fail_immediately:
+ raise ImmediateFail()
+ else:
+ self._ops.addSuccess(test, details)
self.output = None
def skip_testsuite(self, name, reason=None):
@@ -319,6 +335,7 @@ class FilterOps(testtools.testresult.TestResult):
self.error_added = 0
self.fail_added = 0
self.xfail_added = 0
+ self.uxsuccess_added = 0
def end_testsuite(self, name, result, reason=None):
xfail = False
@@ -346,7 +363,8 @@ class FilterOps(testtools.testresult.TestResult):
self._ops.end_testsuite(name, result, reason)
def __init__(self, out, prefix=None, expected_failures=None,
- strip_ok_output=False, fail_immediately=False):
+ strip_ok_output=False, fail_immediately=False,
+ flapping=None):
self._ops = out
self.seen_output = False
self.output = None
@@ -355,12 +373,18 @@ class FilterOps(testtools.testresult.TestResult):
self.expected_failures = expected_failures
else:
self.expected_failures = {}
+ if flapping is not None:
+ self.flapping = flapping
+ else:
+ self.flapping = {}
self.strip_ok_output = strip_ok_output
self.xfail_added = 0
self.fail_added = 0
+ self.uxsuccess_added = 0
self.total_xfail = 0
self.total_error = 0
self.total_fail = 0
+ self.total_uxsuccess = 0
self.error_added = 0
self.fail_immediately = fail_immediately