From: Giacomo Travaglini Date: Wed, 5 Feb 2020 17:18:11 +0000 (+0000) Subject: ext: Add failure node to JUnit xml file X-Git-Tag: v20.0.0.0~530 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d1e2f182302003ddda3336f20f85db6fa3ecfcd8;p=gem5.git ext: Add failure node to JUnit xml file "failure" is a child of the testcase node: https://llg.cubic.org/docs/junit/ It allows xml parsers to understand which testcase failed the run. Otherwise CI frameworks like jenkins wouldn't be able to classify every single testcase. Prior to this patch testlib was using testsuites.failures and testsuite.failures only. These are simply reporting the number of failures. Change-Id: I0d498eca029c3232f2a588b153b6b6829b789394 Signed-off-by: Giacomo Travaglini Reviewed-by: Nikos Nikoleris Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25083 Tested-by: kokoro Reviewed-by: Ciro Santilli --- diff --git a/ext/testlib/result.py b/ext/testlib/result.py index 22c0248ca..786c21b60 100644 --- a/ext/testlib/result.py +++ b/ext/testlib/result.py @@ -269,6 +269,20 @@ class JUnitTestCase(XMLElement): LargeFileElement('system-out', test_result.stdout), ] + if str(test_result.result) == 'Failed': + self.elements.append(JUnitFailure('Test failed', 'ERROR')) + + +class JUnitFailure(XMLElement): + name = 'failure' + def __init__(self, message, fail_type): + self.attributes = [ + XMLAttribute('message', message), + XMLAttribute('type', fail_type), + ] + self.elements = [] + + class LargeFileElement(XMLElement): def __init__(self, name, filename): self.name = name