unittest: Add unit tests to the scons framework.

Also fix the unit tests so they actually compile correctly.
This commit is contained in:
Nathan Binkert
2008-10-02 11:27:01 -07:00
parent 52493b2720
commit b25755993b
9 changed files with 92 additions and 142 deletions

View File

@@ -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