1Import('env') 2 3tests = Split('prepare.sh \ 4 run-tests.pl \ 5 cleanup.sh') 6 7extra_dist = Split('fastcgi-10.conf \ 8 fastcgi-auth.conf \ 9 fastcgi-responder.conf \ 10 fastcgi-13.conf \ 11 bug-06.conf \ 12 bug-12.conf \ 13 core-var-include.t \ 14 var-include.conf \ 15 var-include-sub.conf \ 16 condition.conf \ 17 core-condition.t \ 18 core-request.t \ 19 core-response.t \ 20 core-keepalive.t \ 21 core.t \ 22 mod-access.t \ 23 mod-auth.t \ 24 mod-cgi.t \ 25 mod-compress.t \ 26 mod-compress.conf \ 27 mod-fastcgi.t \ 28 mod-redirect.t \ 29 mod-userdir.t \ 30 mod-rewrite.t \ 31 request.t \ 32 mod-ssi.t \ 33 LightyTest.pm \ 34 mod-setenv.t') 35 36fcgi_auth = None 37fcgi_responder = None 38scgi_responder = env.Program("scgi-responder", "scgi-responder.c") 39 40if env['LIBFCGI']: 41 fcgi_auth = env.Program("fcgi-auth", "fcgi-auth.c", LIBS=[env['LIBFCGI'], env['APPEND_LIBS']]) 42 fcgi_responder = env.Program("fcgi-responder", "fcgi-responder.c", LIBS=[env['LIBFCGI'], env['APPEND_LIBS']]) 43 44def CopyTestBinary(env, binary): 45 return env.Command(target = env['ENV']['top_builddir'] + '/tests/' + binary, source = binary, action = Copy("$TARGET", "$SOURCE")) 46 47def BuildTestEnv(env, build_type): 48 builddir = build_type 49 dependencies = [build_type] 50 if build_type == 'dynamic': 51 builddir = '.' 52 dependencies += ['modules'] 53 54 testenv = env.Clone() 55 testenv['ENV']['srcdir']='tests' 56 testenv['ENV']['top_builddir']='sconsbuild/' + builddir 57 prepare = testenv.AlwaysBuild(testenv.Command(build_type + '/prepare', 'prepare.sh', 'tests/prepare.sh')) 58 runtests = testenv.AlwaysBuild(testenv.Command(build_type + '/run-tests', 'run-tests.pl', 'tests/run-tests.pl')) 59 cleanup = testenv.AlwaysBuild(testenv.Command(build_type + '/cleanup', 'cleanup.sh', 'tests/cleanup.sh')) 60 testenv.Depends(runtests, prepare) 61 testenv.Depends(cleanup, runtests) 62 SideEffect('dummy-file-prevent-running-tests-in-parallel', runtests) 63 64 testenv.Depends(runtests, dependencies) 65 66 if env['LIBFCGI']: 67 fcgis = [CopyTestBinary(testenv, 'fcgi-auth'), CopyTestBinary(testenv, 'fcgi-responder')] 68 testenv.Depends(runtests, fcgis) 69 70 return [prepare, runtests, cleanup] 71 72check_dynamic = env.Alias('check_dynamic', BuildTestEnv(env, 'dynamic')) 73env.Depends(check_dynamic, 'modules') 74check_static = env.Alias('check_static', BuildTestEnv(env, 'static')) 75check_fullstatic = env.Alias('check_fullstatic', BuildTestEnv(env, 'fullstatic')) 76 77checks = [] 78 79if env['build_dynamic']: 80 checks += check_dynamic 81 82if env['build_static']: 83 checks += check_static 84 85if env['build_fullstatic']: 86 checks += check_fullstatic 87 88env.Alias('check', checks) 89