From d1e2f182302003ddda3336f20f85db6fa3ecfcd8 Mon Sep 17 00:00:00 2001 From: Giacomo Travaglini Date: Wed, 5 Feb 2020 17:18:11 +0000 Subject: [PATCH] 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 --- ext/testlib/result.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 -- 2.30.2