diff --git a/bin/tests/system/Makefile.in b/bin/tests/system/Makefile.in index 1b7ff31dd7..cfd8e16d24 100644 --- a/bin/tests/system/Makefile.in +++ b/bin/tests/system/Makefile.in @@ -92,7 +92,7 @@ parallel.mk: for directory in $(PARALLEL) ; do \ echo "" >> $@ ; \ echo "test-`echo $$directory | tr _ -`:" >> $@ ; \ - echo " @$(SHELL) ./run.sh $$NOCLEAN -r -p $$port $$directory 2>&1 | tee $$directory/test.output" >> $@ ; \ + echo " @$(SHELL) ./run.sh -r -p $$port $$directory 2>&1 | tee $$directory/test.output" >> $@ ; \ port=`expr $$port + 100` ; \ done @@ -100,7 +100,7 @@ parallel.mk: test: parallel.mk subdirs @$(MAKE) -f parallel.mk check - @$(SHELL) ./runsequential.sh $$NOCLEAN -r + @$(SHELL) ./runsequential.sh -r @$(SHELL) ./testsummary.sh check: test diff --git a/bin/tests/system/README b/bin/tests/system/README index 4bf6719d44..81cca41605 100644 --- a/bin/tests/system/README +++ b/bin/tests/system/README @@ -129,7 +129,10 @@ Running All The System Tests --- To run all the system tests, enter the command: - sh runall.sh [-n] [numproc] + sh runall.sh [-c] [-n] [numproc] + +The optional flag "-c" forces colored output (by default system test output is +not printed in color due to run.sh being piped through "tee"). The optional flag "-n" has the same effect as it does for "run.sh" - it causes the retention of all output files from all tests. @@ -153,11 +156,13 @@ A run of all the system tests can also be initiated via make: make [-j numproc] test In this case, retention of the output files after a test completes successfully -is specified by setting the environment variable NOCLEAN to "-n" prior to -running make, e.g. +is specified by setting the environment variable SYSTEMTEST_NO_CLEAN to 1 prior +to running make, e.g. - NOCLEAN=-n make [-j numproc] test + SYSTEMTEST_NO_CLEAN=1 make [-j numproc] test +while setting environment variable SYSTEMTEST_FORCE_COLOR to 1 forces system +test output to be printed in color. Running Multiple System Test Suites Simultaneously @@ -714,7 +719,7 @@ the ports are assigned when the tests are run. This is achieved by having the when "make check" is run, and contains a target for each test of the form: : - @$(SHELL) run.sh $$NOCLEAN -r -p + @$(SHELL) run.sh -r -p The is unique and the values of for each test are separated by at least 100 ports. diff --git a/bin/tests/system/conf.sh.in b/bin/tests/system/conf.sh.in index 62323ffd4b..95a5d332a1 100644 --- a/bin/tests/system/conf.sh.in +++ b/bin/tests/system/conf.sh.in @@ -166,7 +166,7 @@ NZD=@NZD_TOOLS@ # # Set up color-coded test output # -if test -t 1 && type tput > /dev/null 2>&1 ; then +if [ ${SYSTEMTEST_FORCE_COLOR:-0} -eq 1 ] || test -t 1 && type tput > /dev/null 2>&1 ; then COLOR_END=`tput setaf 4` # blue COLOR_FAIL=`tput setaf 1` # red COLOR_INFO=`tput bold` # bold diff --git a/bin/tests/system/run.sh b/bin/tests/system/run.sh index 60e6395da7..9abdedbba8 100644 --- a/bin/tests/system/run.sh +++ b/bin/tests/system/run.sh @@ -17,9 +17,14 @@ SYSTEMTESTTOP=. . $SYSTEMTESTTOP/conf.sh stopservers=true -clean=true baseport=5300 +if [ ${SYSTEMTEST_NO_CLEAN:-0} -eq 1 ]; then + clean=false +else + clean=true +fi + while getopts "knp:r" flag; do case "$flag" in k) stopservers=false ;; diff --git a/bin/tests/system/runall.sh b/bin/tests/system/runall.sh index 5aa9412454..c0e714d614 100644 --- a/bin/tests/system/runall.sh +++ b/bin/tests/system/runall.sh @@ -12,7 +12,9 @@ # Run all the system tests. # # Usage: -# runall.sh [-n] [numprocesses] +# runall.sh [-c] [-n] [numprocesses] +# +# -c Force colored output. # # -n Noclean. Keep all output files produced by all tests. These # can later be removed by running "cleanall.sh". @@ -25,14 +27,19 @@ SYSTEMTESTTOP=. . $SYSTEMTESTTOP/conf.sh -usage="Usage: ./runall.sh [-n] [numprocesses]" +usage="Usage: ./runall.sh [-c] [-n] [numprocesses]" -# Handle "-n" switch if present. +# Preserve values of environment variables which are already set. -NOCLEAN="" -while getopts "n" flag; do +SYSTEMTEST_FORCE_COLOR=${SYSTEMTEST_FORCE_COLOR:-0} +SYSTEMTEST_NO_CLEAN=${SYSTEMTEST_NO_CLEAN:-0} + +# Handle command line switches if present. + +while getopts "cn" flag; do case "$flag" in - n) NOCLEAN="-n" ;; + c) SYSTEMTEST_FORCE_COLOR=1 ;; + n) SYSTEMTEST_NO_CLEAN=1 ;; esac done export NOCLEAN @@ -57,6 +64,9 @@ fi # Run the tests. +export SYSTEMTEST_FORCE_COLOR +export SYSTEMTEST_NO_CLEAN + status=0 if [ "$CYGWIN" = "" ]; then # Running on Unix, use "make" to run tests in parallel. @@ -69,7 +79,7 @@ else # used, the tests would be run sequentially anyway.) { for testdir in $SUBDIRS; do - $SHELL run.sh $NOCLEAN $testdir || status=1 + $SHELL run.sh $testdir || status=1 done } 2>&1 | tee "systests.output" fi