From ed371e0fec0b40a21b5f60ccbca3e40a2e459734 Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Wed, 13 Dec 2017 11:14:28 +0000 Subject: [PATCH] scons, tests: Add support for GTest XML generation The GTest framework supports result generation in XML (JUnit). Enable this by creating unit test specific targets in the build/${BUILD_OPTS}/unittests.${VARIANT} directory. Targets in the directory use the following naming convention: ${SRC_PATH}/${TEST_NAME}.xml For example, the opt version of the bitunion test built for ARM would have this path: build/ARM/unittests.opt/base/bituniontest.xml Change-Id: I174dff16817734db05b08ce1d5bcf52e8697bbac Signed-off-by: Andreas Sandberg Reviewed-by: Jack Travaglini Reviewed-on: https://gem5-review.googlesource.com/6624 Reviewed-by: Gabe Black --- src/SConscript | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/SConscript b/src/SConscript index 57a2d9648..a98fbc433 100755 --- a/src/SConscript +++ b/src/SConscript @@ -1090,7 +1090,7 @@ def makeEnv(env, label, objsfx, strip=False, disable_partial=False, **kwargs): gtest_env.Append(LIBS=gtest_env['GTEST_LIBS']) gtest_env.Append(CPPFLAGS=gtest_env['GTEST_CPPFLAGS']) gtestlib_sources = Source.all.with_tag('gtest lib') - gtests = [] + gtest_out_dir = Dir(new_env['BUILDDIR']).Dir('unittests.%s' % label) for test in GTest.all: test_sources = test.sources if not test.skip_lib: @@ -1098,11 +1098,12 @@ def makeEnv(env, label, objsfx, strip=False, disable_partial=False, **kwargs): for f in test.filters: test_sources += Source.all.apply_filter(f) test_objs = [ s.static(gtest_env) for s in test_sources ] - gtests.append(gtest_env.Program( - test.dir.File('%s.%s' % (test.target, label)), test_objs)) + test_binary = gtest_env.Program( + test.dir.File('%s.%s' % (test.target, label)), test_objs) - gtest_target = Dir(new_env['BUILDDIR']).File('unittests.%s' % label) - AlwaysBuild(gtest_env.Command(gtest_target, gtests, gtests)) + AlwaysBuild(gtest_env.Command( + gtest_out_dir.File("%s/%s.xml" % (test.dir, test.target)), + test_binary, "${SOURCES[0]} --gtest_output=xml:${TARGETS[0]}")) progname = exename if strip: -- 2.30.2