summaryrefslogtreecommitdiff
path: root/src/SConscript
diff options
context:
space:
mode:
Diffstat (limited to 'src/SConscript')
-rw-r--r--src/SConscript18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/SConscript b/src/SConscript
index 14988bbbe..6b2ea4d60 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -144,12 +144,26 @@ def SwigSource(package, source):
val = source,package
swig_sources.append(val)
+unit_tests = []
+def UnitTest(target, sources):
+ if not isinstance(sources, (list, tuple)):
+ sources = [ sources ]
+
+ srcs = []
+ for source in sources:
+ if not isinstance(source, SCons.Node.FS.File):
+ source = File(source)
+ srcs.append(source)
+
+ unit_tests.append((target, srcs))
+
# Children should have access
Export('Source')
Export('BinSource')
Export('PySource')
Export('SimObject')
Export('SwigSource')
+Export('UnitTest')
########################################################################
#
@@ -962,6 +976,10 @@ def makeEnv(label, objsfx, strip = False, **kwargs):
m5lib = newEnv.Library('m5_' + label,
make_objs(cc_lib_sources, newEnv) + swig_objs)
+ for target, sources in unit_tests:
+ objs = [ newEnv.StaticObject(s) for s in sources ]
+ newEnv.Program("unittest/%s.%s" % (target, label), objs + m5lib)
+
# Now link a stub with main() and the library.
exe = 'm5.' + label # final executable
objects = [newEnv.Object(s) for s in cc_bin_sources] + m5lib