diff options
author | Thibault Saunier <tsaunier@igalia.com> | 2019-03-26 14:09:54 -0300 |
---|---|---|
committer | Thibault Saunier <tsaunier@gnome.org> | 2019-04-03 13:38:42 +0000 |
commit | de007b681905d0ca584a507a9c2200bae4104aae (patch) | |
tree | c325fb73f3d0185e1ae2a42d12df7a220763dafb | |
parent | 8da6ecef13628d3acdc7bd76657a0945a04c6dd7 (diff) |
validate:launcher: Put all logs inside the failure node
Pleasing gitlab CI reporting system
-rw-r--r-- | validate/launcher/reporters.py | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/validate/launcher/reporters.py b/validate/launcher/reporters.py index e165da1..7b6bd3b 100644 --- a/validate/launcher/reporters.py +++ b/validate/launcher/reporters.py @@ -137,23 +137,25 @@ class XunitReporter(Reporter): self.report() return super(XunitReporter, self).final_report() - def _get_captured(self, test): - captured = "" + def _get_all_logs_data(self, test): if not self.options.redirect_logs: - value = test.get_log_content() - if value: - captured += '<system-out><![CDATA[%s' % \ - escape_cdata(value) - for extralog in test.extra_logfiles: - captured += "\n\n===== %s =====\n\n" % escape_cdata( - os.path.basename(extralog)) - value = test.get_extra_log_content(extralog) - captured += escape_cdata(value) - - captured += "]]></system-out>" + return "" + + captured = "" + value = test.get_log_content() + if value: + captured += escape_cdata(value) + for extralog in test.extra_logfiles: + captured += "\n\n===== %s =====\n\n" % escape_cdata( + os.path.basename(extralog)) + value = test.get_extra_log_content(extralog) + captured += escape_cdata(value) return captured + def _get_captured(self, test): + return '<system-out><![CDATA[%s]]></system-out>' % self._get_all_logs_data(test) + def _quoteattr(self, attr): """Escape an XML attribute. Value can be unicode.""" attr = xml_safe(attr) @@ -172,8 +174,8 @@ class XunitReporter(Reporter): self.encoding, 'replace') self.stats['encoding'] = self.encoding - self.stats['total'] = (self.stats['timeout'] + self.stats['failures'] + - self.stats['passed'] + self.stats['skipped']) + self.stats['total'] = (self.stats['timeout'] + self.stats['failures'] + + self.stats['passed'] + self.stats['skipped']) xml_file.write('<?xml version="1.0" encoding="%(encoding)s"?>' '<testsuite name="gst-validate-launcher" tests="%(total)d" ' @@ -202,21 +204,17 @@ class XunitReporter(Reporter): """ super().set_failed(test) - stack_trace = '' - if test.stack_trace: - stack_trace = '<![CDATA[%s]]>' % (escape_cdata(test.stack_trace)) xml_file = codecs.open(self.tmp_xml_file.name, 'a', self.encoding, 'replace') xml_file.write(self._forceUnicode( '<testcase name=%(name)s time="%(taken).3f">' - '<failure type=%(errtype)s message=%(message)s>%(stacktrace)s' - '</failure>%(systemout)s</testcase>' % + '<failure type=%(errtype)s message=%(message)s>%(logs)s' + '</failure></testcase>' % {'name': self._quoteattr(test.get_classname() + '.' + test.get_name()), 'taken': test.time_taken, - 'stacktrace': stack_trace, + 'logs': self._get_all_logs_data(test), 'errtype': self._quoteattr(test.result), 'message': self._quoteattr(test.message), - 'systemout': self._get_captured(test), })) xml_file.close() |