scons: Add a "check" target to run all unit tests.

Except:
- u_cache_test -- too long
- translate_test -- unreliable (it's probably testing corner cases that
  translate module doesn't care about.)

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
This commit is contained in:
Jose Fonseca
2016-04-13 13:31:04 +01:00
parent 9ae0e8ee3c
commit 50ddf03ada
5 changed files with 31 additions and 26 deletions

View File

@@ -84,6 +84,11 @@ env.Append(CPPPATH = [
#print env.Dump() #print env.Dump()
# Add a check target for running tests
check = env.Alias('check')
env.AlwaysBuild(check)
####################################################################### #######################################################################
# Invoke host SConscripts # Invoke host SConscripts
# #

View File

@@ -82,11 +82,6 @@ def install_shared_library(env, sources, version = ()):
return targets return targets
def createInstallMethods(env):
env.AddMethod(install_program, 'InstallProgram')
env.AddMethod(install_shared_library, 'InstallSharedLibrary')
def msvc2013_compat(env): def msvc2013_compat(env):
if env['gcc']: if env['gcc']:
env.Append(CCFLAGS = [ env.Append(CCFLAGS = [
@@ -94,8 +89,20 @@ def msvc2013_compat(env):
'-Werror=pointer-arith', '-Werror=pointer-arith',
]) ])
def createMSVCCompatMethods(env):
env.AddMethod(msvc2013_compat, 'MSVC2013Compat') def unit_test(env, test_name, program_target, args=None):
env.InstallProgram(program_target)
cmd = [program_target[0].abspath]
if args is not None:
cmd += args
cmd = ' '.join(cmd)
# http://www.scons.org/wiki/UnitTests
action = SCons.Action.Action(cmd, " Running %s ..." % test_name)
alias = env.Alias(test_name, program_target, action)
env.AlwaysBuild(alias)
env.Depends('check', alias)
def num_jobs(): def num_jobs():
@@ -667,8 +674,10 @@ def generate(env):
# Custom builders and methods # Custom builders and methods
env.Tool('custom') env.Tool('custom')
createInstallMethods(env) env.AddMethod(install_program, 'InstallProgram')
createMSVCCompatMethods(env) env.AddMethod(install_shared_library, 'InstallSharedLibrary')
env.AddMethod(msvc2013_compat, 'MSVC2013Compat')
env.AddMethod(unit_test, 'UnitTest')
env.PkgCheckModules('X11', ['x11', 'xext', 'xdamage', 'xfixes', 'glproto >= 1.4.13']) env.PkgCheckModules('X11', ['x11', 'xext', 'xdamage', 'xfixes', 'glproto >= 1.4.13'])
env.PkgCheckModules('XCB', ['x11-xcb', 'xcb-glx >= 1.8.1', 'xcb-dri2 >= 1.8']) env.PkgCheckModules('XCB', ['x11-xcb', 'xcb-glx >= 1.8.1', 'xcb-dri2 >= 1.8'])

View File

@@ -38,10 +38,6 @@ if not env['embedded']:
target = testname, target = testname,
source = [testname + '.c', 'lp_test_main.c'], source = [testname + '.c', 'lp_test_main.c'],
) )
env.InstallProgram(target) env.UnitTest(testname, target)
# http://www.scons.org/wiki/UnitTests
alias = env.Alias(testname, [target], target[0].abspath)
AlwaysBuild(alias)
Export('llvmpipe') Export('llvmpipe')

View File

@@ -24,10 +24,8 @@ for progname in progs:
target = progname, target = progname,
source = progname + '.c', source = progname + '.c',
) )
if progname not in [
env.Alias(progname, env.InstallProgram(prog)) 'u_cache_test', # too long
'translate_test', # unreliable
# http://www.scons.org/wiki/UnitTests ]:
test_alias = env.Alias('unit', [prog], prog[0].abspath) env.UnitTest(progname, prog)
AlwaysBuild(test_alias)

View File

@@ -47,17 +47,14 @@ env.Alias('mesautil', mesautil)
Export('mesautil') Export('mesautil')
# http://www.scons.org/wiki/UnitTests
u_atomic_test = env.Program( u_atomic_test = env.Program(
target = 'u_atomic_test', target = 'u_atomic_test',
source = ['u_atomic_test.c'], source = ['u_atomic_test.c'],
) )
alias = env.Alias("u_atomic_test", u_atomic_test, u_atomic_test[0].abspath) env.UnitTest("u_atomic_test", u_atomic_test)
AlwaysBuild(alias)
roundeven_test = env.Program( roundeven_test = env.Program(
target = 'roundeven_test', target = 'roundeven_test',
source = ['roundeven_test.c'], source = ['roundeven_test.c'],
) )
alias = env.Alias("roundeven_test", roundeven_test, roundeven_test[0].abspath) env.UnitTest("roundeven_test", roundeven_test)
AlwaysBuild(alias)