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>
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user