mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
validate: launcher: Separate Reporter from current Test
Instead of saving the current Test in Reporter for every test, use function parameters to achieve the same goal. Patch 2/5 to move logfile handling out of Reporter and into Test.
This commit is contained in:
parent
39a4092434
commit
b9357e3b17
2 changed files with 10 additions and 14 deletions
|
@ -751,7 +751,7 @@ class TestsManager(Loggable):
|
||||||
self.reporter.before_test(test)
|
self.reporter.before_test(test)
|
||||||
res = test.run()
|
res = test.run()
|
||||||
i += 1
|
i += 1
|
||||||
self.reporter.after_test()
|
self.reporter.after_test(test)
|
||||||
if res != Result.PASSED and (self.options.forever or
|
if res != Result.PASSED and (self.options.forever or
|
||||||
self.options.fatal_error):
|
self.options.fatal_error):
|
||||||
return test.result
|
return test.result
|
||||||
|
|
|
@ -55,7 +55,6 @@ class Reporter(Loggable):
|
||||||
def __init__(self, options):
|
def __init__(self, options):
|
||||||
Loggable.__init__(self)
|
Loggable.__init__(self)
|
||||||
|
|
||||||
self._current_test = None
|
|
||||||
self.out = None
|
self.out = None
|
||||||
self.options = options
|
self.options = options
|
||||||
self._start_time = 0
|
self._start_time = 0
|
||||||
|
@ -82,7 +81,6 @@ class Reporter(Loggable):
|
||||||
self.out = sys.stderr
|
self.out = sys.stderr
|
||||||
else:
|
else:
|
||||||
self.out = open(path, 'w+')
|
self.out = open(path, 'w+')
|
||||||
self._current_test = test
|
|
||||||
|
|
||||||
def set_failed(self, test):
|
def set_failed(self, test):
|
||||||
self.stats["failure"] += 1
|
self.stats["failure"] += 1
|
||||||
|
@ -100,16 +98,15 @@ class Reporter(Loggable):
|
||||||
else:
|
else:
|
||||||
raise UnknownResult("%s" % test.result)
|
raise UnknownResult("%s" % test.result)
|
||||||
|
|
||||||
def after_test(self):
|
def after_test(self, test):
|
||||||
if self._current_test not in self.results:
|
if test not in self.results:
|
||||||
self.results.append(self._current_test)
|
self.results.append(test)
|
||||||
|
|
||||||
self.add_results(self._current_test)
|
self.add_results(test)
|
||||||
if not self.options.redirect_logs:
|
if not self.options.redirect_logs:
|
||||||
self.out.close()
|
self.out.close()
|
||||||
|
|
||||||
self.out = None
|
self.out = None
|
||||||
self._current_test = None
|
|
||||||
|
|
||||||
def final_report(self):
|
def final_report(self):
|
||||||
print "\n"
|
print "\n"
|
||||||
|
@ -158,7 +155,7 @@ class XunitReporter(Reporter):
|
||||||
self.report()
|
self.report()
|
||||||
super(XunitReporter, self).final_report()
|
super(XunitReporter, self).final_report()
|
||||||
|
|
||||||
def _get_captured(self):
|
def _get_captured(self, test):
|
||||||
captured = ""
|
captured = ""
|
||||||
if self.out and not self.options.redirect_logs:
|
if self.out and not self.options.redirect_logs:
|
||||||
self.out.seek(0)
|
self.out.seek(0)
|
||||||
|
@ -166,11 +163,10 @@ class XunitReporter(Reporter):
|
||||||
if value:
|
if value:
|
||||||
captured += '<system-out><![CDATA[%s' % \
|
captured += '<system-out><![CDATA[%s' % \
|
||||||
escape_cdata(value)
|
escape_cdata(value)
|
||||||
|
for extralog in test.extra_logfiles:
|
||||||
for extralog in self._current_test.extra_logfiles:
|
|
||||||
captured += "\n\n===== %s =====\n\n" % escape_cdata(
|
captured += "\n\n===== %s =====\n\n" % escape_cdata(
|
||||||
os.path.basename(extralog))
|
os.path.basename(extralog))
|
||||||
value = self._current_test.get_extra_log_content(extralog)
|
value = test.get_extra_log_content(extralog)
|
||||||
captured += escape_cdata(value)
|
captured += escape_cdata(value)
|
||||||
|
|
||||||
captured += "]]></system-out>"
|
captured += "]]></system-out>"
|
||||||
|
@ -218,7 +214,7 @@ class XunitReporter(Reporter):
|
||||||
'taken': test.time_taken,
|
'taken': test.time_taken,
|
||||||
'errtype': self._quoteattr(test.result),
|
'errtype': self._quoteattr(test.result),
|
||||||
'message': self._quoteattr(test.message),
|
'message': self._quoteattr(test.message),
|
||||||
'systemout': self._get_captured(),
|
'systemout': self._get_captured(test),
|
||||||
})
|
})
|
||||||
|
|
||||||
def set_passed(self, test):
|
def set_passed(self, test):
|
||||||
|
@ -231,7 +227,7 @@ class XunitReporter(Reporter):
|
||||||
{'cls': self._quoteattr(test.get_classname()),
|
{'cls': self._quoteattr(test.get_classname()),
|
||||||
'name': self._quoteattr(test.get_name()),
|
'name': self._quoteattr(test.get_name()),
|
||||||
'taken': test.time_taken,
|
'taken': test.time_taken,
|
||||||
'systemout': self._get_captured(),
|
'systemout': self._get_captured(test),
|
||||||
})
|
})
|
||||||
|
|
||||||
def _forceUnicode(self, s):
|
def _forceUnicode(self, s):
|
||||||
|
|
Loading…
Reference in a new issue