2005-06-22 21:37:51 +00:00
|
|
|
target = 'test'
|
|
|
|
|
|
|
|
tests = Split("""
|
|
|
|
endian.cpp
|
|
|
|
mmap.cpp
|
|
|
|
specmatch.cpp
|
|
|
|
textrunner.cpp
|
|
|
|
""")
|
|
|
|
|
|
|
|
required = Split("""
|
|
|
|
dirreader.cpp
|
|
|
|
growbuf.cpp
|
|
|
|
mmap.cpp
|
|
|
|
""")
|
|
|
|
|
2005-09-24 15:50:40 +00:00
|
|
|
cppunitlibs = Split("""
|
2005-06-22 21:37:51 +00:00
|
|
|
cppunit
|
|
|
|
""")
|
|
|
|
|
2005-09-24 15:50:40 +00:00
|
|
|
extralibs = Split("""
|
|
|
|
dl
|
|
|
|
""")
|
|
|
|
|
|
|
|
Import('env AddAvailableLibs')
|
|
|
|
|
|
|
|
# Use available libraries
|
|
|
|
AddAvailableLibs(env, extralibs)
|
2005-06-22 21:37:51 +00:00
|
|
|
|
|
|
|
# compile using msvcrt (that's how cppunit.lib is built)
|
|
|
|
if 'msvc' in env['TOOLS'] or 'mstoolkit' in env['TOOLS']:
|
|
|
|
env.Append(CCFLAGS = ['/MD'])
|
|
|
|
|
|
|
|
# uses exceptions
|
|
|
|
env.Append(CCFLAGS = ['$EXCEPTION_FLAG'])
|
|
|
|
|
|
|
|
# test for CppUnit
|
|
|
|
conf = env.Configure()
|
2005-09-24 15:50:40 +00:00
|
|
|
cppunit = conf.CheckLibWithHeader(cppunitlibs, 'cppunit/extensions/HelperMacros.h', 'C++')
|
2005-06-24 10:51:45 +00:00
|
|
|
conf.Finish()
|
2005-06-22 21:37:51 +00:00
|
|
|
|
2005-06-24 10:51:45 +00:00
|
|
|
if cppunit:
|
2005-06-22 21:37:51 +00:00
|
|
|
|
2005-06-24 10:51:45 +00:00
|
|
|
# compile files from parent directory
|
|
|
|
required_obj = []
|
2005-06-22 21:37:51 +00:00
|
|
|
|
2005-06-24 10:51:45 +00:00
|
|
|
for i in required:
|
|
|
|
b = 'required/%s' % i[:-4]
|
|
|
|
s = '#Source/%s' % i
|
|
|
|
o = env.Object(b, s)
|
2005-06-22 21:37:51 +00:00
|
|
|
|
2005-06-24 10:51:45 +00:00
|
|
|
required_obj.append(o)
|
2005-06-22 21:37:51 +00:00
|
|
|
|
2005-06-24 10:51:45 +00:00
|
|
|
# build test program
|
2005-09-24 15:50:40 +00:00
|
|
|
tests = env.Program(target, tests + required_obj)
|
2005-06-22 21:37:51 +00:00
|
|
|
|
2005-06-24 10:51:45 +00:00
|
|
|
# alias running the test to 'test'
|
|
|
|
test = env.Alias('test-code', [tests], tests[0].abspath)
|
2005-06-22 21:37:51 +00:00
|
|
|
|
2005-06-24 10:51:45 +00:00
|
|
|
# always test when asked to
|
|
|
|
AlwaysBuild(test)
|
2005-06-22 21:37:51 +00:00
|
|
|
|
2005-06-24 10:51:45 +00:00
|
|
|
else:
|
|
|
|
|
|
|
|
# no CppUnit
|
|
|
|
def err(target, source, env):
|
|
|
|
print '*** error: CppUnit must be installed for testing!'
|
|
|
|
return 1
|
2005-06-22 21:37:51 +00:00
|
|
|
|
2005-06-24 10:51:45 +00:00
|
|
|
cmd = env.Command(target, [tests], Action(err, ''))
|
|
|
|
env.Alias('test-code', cmd)
|