summaryrefslogtreecommitdiff
path: root/src/SConscript
diff options
context:
space:
mode:
Diffstat (limited to 'src/SConscript')
-rwxr-xr-xsrc/SConscript16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/SConscript b/src/SConscript
index 2930bab55..2a495bffa 100755
--- a/src/SConscript
+++ b/src/SConscript
@@ -269,7 +269,12 @@ class UnitTest(object):
self.sources = srcs
self.target = target
self.main = kwargs.get('main', False)
- UnitTest.all.append(self)
+ self.all.append(self)
+
+class GTest(UnitTest):
+ '''Create a unit test based on the google test framework.'''
+
+ all = []
# Children should have access
Export('Source')
@@ -277,6 +282,7 @@ Export('PySource')
Export('SimObject')
Export('ProtoBuf')
Export('UnitTest')
+Export('GTest')
########################################################################
#
@@ -1019,6 +1025,14 @@ def makeEnv(env, label, objsfx, strip=False, disable_partial=False, **kwargs):
path = 'unittest/%s.%s' % (test.target, label)
new_env.Program(path, test_objs + static_objs)
+ gtest_env = new_env.Clone()
+ gtest_env.Append(LIBS=gtest_env['GTEST_LIBS'])
+ gtest_env.Append(CPPFLAGS=gtest_env['GTEST_CPPFLAGS'])
+ for test in GTest.all:
+ test_sources = Source.all.with_tag(str(test.target))
+ test_objs = [ gtest_env.StaticObject(s.tnode) for s in test_sources ]
+ gtest_env.Program('unittest/%s.%s' % (test.target, label), test_objs)
+
progname = exename
if strip:
progname += '.unstripped'