summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndreas Sandberg <andreas.sandberg@arm.com>2017-12-13 11:14:28 +0000
committerAndreas Sandberg <andreas.sandberg@arm.com>2017-12-13 23:57:08 +0000
commited371e0fec0b40a21b5f60ccbca3e40a2e459734 (patch)
treee91390a49f04ef1245c7c2311bc374f76c11bf6d /src
parentbace877821f2ac4a74174dd356990c5ddc738370 (diff)
downloadgem5-ed371e0fec0b40a21b5f60ccbca3e40a2e459734.tar.xz
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 <andreas.sandberg@arm.com> Reviewed-by: Jack Travaglini <giacomo.travaglini@arm.com> Reviewed-on: https://gem5-review.googlesource.com/6624 Reviewed-by: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src')
-rwxr-xr-xsrc/SConscript11
1 files 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: