diff options
-rwxr-xr-x | selftest/format-subunit | 3 | ||||
-rw-r--r-- | selftest/subunithelper.py | 27 |
2 files changed, 30 insertions, 0 deletions
diff --git a/selftest/format-subunit b/selftest/format-subunit index f7d09e835c..eba8c31682 100755 --- a/selftest/format-subunit +++ b/selftest/format-subunit @@ -30,6 +30,9 @@ class PlainFormatter(object): def testsuite_count(self, count): self.totalsuites = count + def progress(self, offset, whence): + pass + def report_time(self, time): if self.start_time is None: self.start_time = time diff --git a/selftest/subunithelper.py b/selftest/subunithelper.py index 1a88443391..36639d94cf 100644 --- a/selftest/subunithelper.py +++ b/selftest/subunithelper.py @@ -19,6 +19,7 @@ __all__ = ['parse_results'] import re import sys +import subunit import time VALID_RESULTS = ['success', 'successful', 'failure', 'fail', 'skip', 'knownfail', 'error', 'xfail', 'skip-testsuite', 'testsuite-failure', 'testsuite-xfail', 'testsuite-success', 'testsuite-error'] @@ -104,6 +105,16 @@ def parse_results(msg_ops, statistics, fh): msg_ops.start_testsuite(l.split(":", 1)[1].strip()) elif l.startswith("testsuite-count: "): msg_ops.testsuite_count(int(l.split(":", 1)[1].strip())) + elif l.startswith("progress: "): + arg = l.split(":", 1)[1].strip() + if arg == "pop": + msg_ops.progress(None, subunit.PROGRESS_POP) + elif arg == "push": + msg_ops.progress(None, subunit.PROGRESS_PUSH) + elif arg[0] in '+-': + msg_ops.progress(int(arg), subunit.PROGRESS_CUR) + else: + msg_ops.progress(int(arg), subunit.PROGRESS_SET) else: msg_ops.output_msg(l) @@ -148,6 +159,19 @@ class SubunitOps(object): (year, mon, mday, hour, min, sec, wday, yday, isdst) = time.localtime(t) print "time: %04d-%02d-%02d %02d:%02d:%02d" % (year, mon, mday, hour, min, sec) + def progress(self, offset, whence): + if whence == subunit.PROGRESS_CUR and offset > -1: + prefix = "+" + elif whence == subunit.PROGRESS_PUSH: + prefix = "" + offset = "push" + elif whence == subunit.PROGRESS_POP: + prefix = "" + offset = "pop" + else: + prefix = "" + print "progress: %s%s" % (prefix, offset) + # The following are Samba extensions: def start_testsuite(self, name): print "testsuite: %s" % name @@ -203,6 +227,9 @@ class FilterOps(object): def report_time(self, time): self._ops.report_time(time) + def progress(self, delta, whence): + self._ops.progress(delta, whence) + def output_msg(self, msg): if self.output is None: sys.stdout.write(msg) |