summaryrefslogtreecommitdiff
path: root/src/SConscript
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2017-12-03 02:10:42 -0800
committerGabe Black <gabeblack@google.com>2017-12-07 06:02:08 +0000
commit08fc1d5ee3e03578b59fa6a6331281e8d123c746 (patch)
tree06588c44cf5f19e594384b3955efbcdf0f87190a /src/SConscript
parent12e646ee724ae2bb8c75ed6b385f161de361acd3 (diff)
downloadgem5-08fc1d5ee3e03578b59fa6a6331281e8d123c746.tar.xz
tests: Add a pseudo target to run all the unit tests for build/variant.
Telling scons to build build/${BUILD_OPTS}/unittests.${VARIANT} will get it to build and run all googletest based unit tests under the ${BUILD_OPTS} build options (ARM, ALPHA, X86, etc.), and compiled with the flags, etc., for the ${VARIANT} variant (ie. opt, debug, etc.). This will make it easy to run the unit tests without having to actually know where they are, what tests are available, etc. This target is called unittests* and not something based on gtest or googletest since it's my intention for all unit tests to be based on googletest, making the distinction unnecessary. Since the target is essentially part of the external interface for scons, I wanted to name it something general so it'll be less likely that we have to change it. Change-Id: I8fdec768d821974309c92a2ce4c96dce7df24fa5 Reviewed-on: https://gem5-review.googlesource.com/6282 Reviewed-by: Gabe Black <gabeblack@google.com> Reviewed-by: Brandon Potter <Brandon.Potter@amd.com> Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/SConscript')
-rwxr-xr-xsrc/SConscript8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/SConscript b/src/SConscript
index 961df49d9..cd42c27c5 100755
--- a/src/SConscript
+++ b/src/SConscript
@@ -1049,11 +1049,15 @@ def makeEnv(env, label, objsfx, strip=False, disable_partial=False, **kwargs):
gtest_env = new_env.Clone()
gtest_env.Append(LIBS=gtest_env['GTEST_LIBS'])
gtest_env.Append(CPPFLAGS=gtest_env['GTEST_CPPFLAGS'])
+ gtests = []
for test in GTest.all:
test_sources = Source.all.with_tag(str(test.target))
test_objs = [ s.static(gtest_env) for s in test_sources ]
- gtest_env.Program(test.dir.File('%s.%s' % (test.target, label)),
- test_objs)
+ gtests.append(gtest_env.Program(
+ test.dir.File('%s.%s' % (test.target, label)), test_objs))
+
+ gtest_target = Dir(new_env['BUILDDIR']).File('unittests.%s' % label)
+ AlwaysBuild(Command(gtest_target, gtests, gtests))
progname = exename
if strip: