1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
"""Pseudo-builders for building and registering unit tests.
"""
def exists(env):
return True
def register_unit_test(env, test):
env._UnitTestList('$UNITTEST_LIST', test)
env.Alias('$UNITTEST_ALIAS', test)
def register_module_test(env, test):
env._UnitTestList('$MODULETEST_LIST', test)
env.Alias('$MODULETEST_ALIAS', test)
def unit_test_list_builder_action(env, target, source):
print "Generating " + str(target[0])
ofile = open(str(target[0]), 'wb')
try:
for s in source:
print '\t' + str(s)
ofile.write('%s\n' % s)
finally:
ofile.close()
def build_cpp_unit_test(env, target, source, **kwargs):
libdeps = kwargs.get('LIBDEPS', [])
libdeps.append( '$BUILD_DIR/mongo/unittest/unittest_main' )
includeCrutch = True
if "NO_CRUTCH" in kwargs:
includeCrutch = not kwargs["NO_CRUTCH"]
if includeCrutch:
libdeps.append( '$BUILD_DIR/mongo/unittest/unittest_crutch' )
kwargs['LIBDEPS'] = libdeps
result = env.Program(target, source, **kwargs)
env.RegisterUnitTest(result[0])
env.Install("#/build/unittests/", target)
return result
def generate(env):
unit_test_list_builder = env.Builder(action=unit_test_list_builder_action, multi=True)
env.Append(BUILDERS=dict(_UnitTestList=unit_test_list_builder))
env.AddMethod(register_unit_test, 'RegisterUnitTest')
env.AddMethod(build_cpp_unit_test, 'CppUnitTest')
env.AddMethod(register_module_test, 'RegisterModuleTest')
env.Alias('$UNITTEST_ALIAS', '$UNITTEST_LIST')
env.Alias('$MODULETEST_ALIAS', '$MODULETEST_LIST')
env.RegisterUnitTest([])
env.RegisterModuleTest([])
|