diff --git a/admin/scons/ToolCCache.py b/admin/scons/ToolCCache.py index ecc45d011..7d93fb7a4 100644 --- a/admin/scons/ToolCCache.py +++ b/admin/scons/ToolCCache.py @@ -1,6 +1,6 @@ # -*- python -*- ## -## ToolDistCC.py - SCons tool for distributed compilation using DistCC +## ToolCCache.py - SCons tool for integrating with CCache compiler cache ## # Copyright (C) Lumiera.org and FreeOrion.org @@ -33,33 +33,44 @@ from Buildhelper import * def generate(env): """ Modify the environment such as to redirect any - C/C++ compiler invocations through DistCC. Additionally - pull in the environment config variables used by DistCC + C/C++ compiler invocations through CCache, while using + CCache config variables found in the os.environment. """ if not exists(env): return - assert env['DISTCC'] - if not env['DISTCC'] in env['CC']: - env['CC'] = env.subst('$DISTCC $CC') - if not env['DISTCC'] in env['CXX']: - env['CXX'] = env.subst('$DISTCC $CXX') - print env.subst("* Build using $DISTCC") + assert env['CCACHE'] + if not env['CCACHE'] in env['CC']: + env['CC'] = env.subst('$CCACHE $CC') + if not env['CCACHE'] in env['CXX']: + env['CXX'] = env.subst('$CCACHE $CXX') + print env.subst("* Build using $CCACHE") + for i in ['HOME' - ,'DISTCC_HOSTS' - ,'DISTCC_VERBOSE' - ,'DISTCC_FALLBACK' - ,'DISTCC_LOG' - ,'DISTCC_MMAP' - ,'DISTCC_SAVE_TEMPS' - ,'DISTCC_TCP_CORK' - ,'DISTCC_SSH' + ,'CCACHE_DIR' + ,'CCACHE_TEMPDIR' + ,'CCACHE_LOGFILE' + ,'CCACHE_PATH' + ,'CCACHE_CC' + ,'CCACHE_CPP2' + ,'CCACHE_PREFIX' + ,'CCACHE_DISABLE' + ,'CCACHE_READONLY' + ,'CCACHE_NOSTATS' + ,'CCACHE_NLEVELS' + ,'CCACHE_HARDLINK' + ,'CCACHE_RECACHE' + ,'CCACHE_UMASK' + ,'CCACHE_HASHDIR' + ,'CCACHE_UNIFY' + ,'CCACHE_EXTENSION' ]: if os.environ.has_key(i) and not env.has_key(i): env['ENV'][i] = os.environ[i] -def exists(env): - """ Ensure DistCC exists. - """ - return checkCommandOption(env, 'DISTCC', cmdName='distcc') + +def exists(env): + """ Ensure CCache is available. + """ + return checkCommandOption(env, 'CCACHE', cmdName='ccache') diff --git a/src/tool/SConscript b/src/tool/SConscript index d5e89270d..bae8d7d12 100644 --- a/src/tool/SConscript +++ b/src/tool/SConscript @@ -8,11 +8,10 @@ Import('env','artifacts','core') support_lib = artifacts['support'] envSvg = env.Clone() -envSvg.mergeConf(['librsvg-2.0','gthread-2.0']) +envSvg.mergeConf(['librsvg-2.0']) envSvg.Append(LIBS=support_lib) -vgsuppr = env.Program('#$BINDIR/vgsuppression','vgsuppression.c', LIBS=core)## for suppressing false valgrind alarms luidgen = env.Program('#$BINDIR/luidgen', 'luidgen.c', LIBS=support_lib) ## for generating Lumiera-UIDs rsvg = envSvg.Program('#$BINDIR/rsvg-convert','rsvg-convert.c') ## for rendering SVG icons (uses librsvg) @@ -20,7 +19,6 @@ rsvg = envSvg.Program('#$BINDIR/rsvg-convert','rsvg-convert.c') ## f artifacts['tools'] = [ env.Program('#$BINDIR/hello-world','hello.c') #### hello world (checks C build) + env.Program('#$BINDIR/try', 'try.cpp') #### to try out some feature... # + luidgen - + vgsuppr + rsvg ] diff --git a/tests/SConscript b/tests/SConscript index 6e97f1c5a..5e97f03e6 100644 --- a/tests/SConscript +++ b/tests/SConscript @@ -66,6 +66,10 @@ artifacts['testsuite'] = ts = ( [ testExecutable(env, dir) for dir in ['bugs'] ] +# for creating a Valgrind-Suppression file +vgsuppr = env.Program('#$BINDIR/vgsuppression','tool/vgsuppression.c', LIBS=core) ## for suppressing false valgrind alarms +artifacts['tools'] += [vgsuppr] +Depends(ts,vgsuppr) # diff --git a/tests/test.conf b/tests/test.conf index 38cf8082d..c3abbce1c 100755 --- a/tests/test.conf +++ b/tests/test.conf @@ -1 +1,4 @@ LOGSUPPRESS='^\(\*\*[0-9]*\*\* \)\?[0-9]\{10,\}[:!] \(TRACE\|INFO\|NOTICE\|WARNING\|ERR\|TODO\|PLANNED\|FIXME\|DEPRECATED\|UNIMPLEMENTED\|RESOURCE_ANNOUNCE\|RESOURCE_ENTER\|RESOURCE_STATE\|RESOURCE_LEAVE\):' + +LIMIT_VG_CPU=55 +LIMIT_VG_TIME=60 diff --git a/tests/test.h b/tests/test.h index 01374701a..15e88529c 100644 --- a/tests/test.h +++ b/tests/test.h @@ -22,40 +22,39 @@ #ifndef TEST_H #define TEST_H +#include +#include +#include #include -#include "lib/error.h" - -#include - -NOBUG_DEFINE_FLAG (TESTS); -LUMIERA_ERROR_DEFINE (TEST, "test error"); +NOBUG_DEFINE_FLAG_LIMIT(TEST, LOG_DEBUG); #define TESTS_BEGIN \ int \ main (int argc, const char** argv) \ { \ NOBUG_INIT; \ - NOBUG_INIT_FLAG (TESTS); \ + NOBUG_INIT_FLAG (TEST); \ + unsigned testcnt=0; \ + int ret = 0; \ \ if (argc == 1) \ - { \ - fprintf (stderr, "missing argument\n"); \ - return 1; \ - } + fprintf (stderr, "supported tests:\n"); #define TEST(name) \ - else if (!strcmp(argv[1], name)) + if (argc == 1) \ + fprintf (stderr, " "#name"\n"); \ + else if (!strcmp(argv[1], #name) && ++testcnt) +#define PLANNED_TEST(name) \ + if (argc == 1) \ + fprintf (stderr, " "#name" (planned)\n"); \ + else if (!++testcnt) -#define TESTS_END \ - else \ - { \ - fprintf (stderr, "unknown test\n"); \ - return 1; \ - } \ - \ - return 0; \ +#define TESTS_END \ + if (!testcnt && argc !=1) \ + fprintf (stderr,"no such test: %s\n", argv[1]); \ + return ret; \ } diff --git a/tests/test.sh b/tests/test.sh index 77eae39e7..6b4944d55 100755 --- a/tests/test.sh +++ b/tests/test.sh @@ -141,7 +141,7 @@ if [ "$VALGRINDFLAGS" = 'DISABLE' ]; then echo "valgrind explicit disabled" else if [ "$(which valgrind)" ]; then - ulimit -S -t ${ULIMIT_VG_CPU:-20} -v ${ULIMIT_VG_VSZ:-524288} + ulimit -S -t ${LIMIT_VG_CPU:-20} -v ${LIMIT_VG_VSZ:-524288} LIMIT_TIME_REAL="$LIMIT_VG_TIME" if [[ -x 'vgsuppression' ]]; then if [[ 'vgsuppression' -nt 'vgsuppression.supp' ]]; then diff --git a/src/tool/vgsuppression.c b/tests/tool/vgsuppression.c similarity index 100% rename from src/tool/vgsuppression.c rename to tests/tool/vgsuppression.c