From 50ddf03ada3cc167f7dcb6b26f82adb20162f983 Mon Sep 17 00:00:00 2001 From: Jose Fonseca Date: Wed, 13 Apr 2016 13:31:04 +0100 Subject: [PATCH] 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 --- SConstruct | 5 +++++ scons/gallium.py | 27 ++++++++++++++++--------- src/gallium/drivers/llvmpipe/SConscript | 6 +----- src/gallium/tests/unit/SConscript | 12 +++++------ src/util/SConscript | 7 ++----- 5 files changed, 31 insertions(+), 26 deletions(-) diff --git a/SConstruct b/SConstruct index ef71ab69c38..e2e49fcc6ca 100644 --- a/SConstruct +++ b/SConstruct @@ -84,6 +84,11 @@ env.Append(CPPPATH = [ #print env.Dump() +# Add a check target for running tests +check = env.Alias('check') +env.AlwaysBuild(check) + + ####################################################################### # Invoke host SConscripts # diff --git a/scons/gallium.py b/scons/gallium.py index f37042d9af1..94321b2e847 100755 --- a/scons/gallium.py +++ b/scons/gallium.py @@ -82,11 +82,6 @@ def install_shared_library(env, sources, version = ()): return targets -def createInstallMethods(env): - env.AddMethod(install_program, 'InstallProgram') - env.AddMethod(install_shared_library, 'InstallSharedLibrary') - - def msvc2013_compat(env): if env['gcc']: env.Append(CCFLAGS = [ @@ -94,8 +89,20 @@ def msvc2013_compat(env): '-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(): @@ -667,8 +674,10 @@ def generate(env): # Custom builders and methods env.Tool('custom') - createInstallMethods(env) - createMSVCCompatMethods(env) + env.AddMethod(install_program, 'InstallProgram') + 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('XCB', ['x11-xcb', 'xcb-glx >= 1.8.1', 'xcb-dri2 >= 1.8']) diff --git a/src/gallium/drivers/llvmpipe/SConscript b/src/gallium/drivers/llvmpipe/SConscript index 8188156afc2..fbbd22a5299 100644 --- a/src/gallium/drivers/llvmpipe/SConscript +++ b/src/gallium/drivers/llvmpipe/SConscript @@ -38,10 +38,6 @@ if not env['embedded']: target = testname, source = [testname + '.c', 'lp_test_main.c'], ) - env.InstallProgram(target) - - # http://www.scons.org/wiki/UnitTests - alias = env.Alias(testname, [target], target[0].abspath) - AlwaysBuild(alias) + env.UnitTest(testname, target) Export('llvmpipe') diff --git a/src/gallium/tests/unit/SConscript b/src/gallium/tests/unit/SConscript index a816e2fea41..0650804018b 100644 --- a/src/gallium/tests/unit/SConscript +++ b/src/gallium/tests/unit/SConscript @@ -24,10 +24,8 @@ for progname in progs: target = progname, source = progname + '.c', ) - - env.Alias(progname, env.InstallProgram(prog)) - - # http://www.scons.org/wiki/UnitTests - test_alias = env.Alias('unit', [prog], prog[0].abspath) - AlwaysBuild(test_alias) - + if progname not in [ + 'u_cache_test', # too long + 'translate_test', # unreliable + ]: + env.UnitTest(progname, prog) diff --git a/src/util/SConscript b/src/util/SConscript index 5f3ecc1cdfc..73f34303976 100644 --- a/src/util/SConscript +++ b/src/util/SConscript @@ -47,17 +47,14 @@ env.Alias('mesautil', mesautil) Export('mesautil') -# http://www.scons.org/wiki/UnitTests u_atomic_test = env.Program( target = 'u_atomic_test', source = ['u_atomic_test.c'], ) -alias = env.Alias("u_atomic_test", u_atomic_test, u_atomic_test[0].abspath) -AlwaysBuild(alias) +env.UnitTest("u_atomic_test", u_atomic_test) roundeven_test = env.Program( target = 'roundeven_test', source = ['roundeven_test.c'], ) -alias = env.Alias("roundeven_test", roundeven_test, roundeven_test[0].abspath) -AlwaysBuild(alias) +env.UnitTest("roundeven_test", roundeven_test) -- 2.30.2