From: Michał Kępień Date: Wed, 21 Feb 2018 13:59:35 +0000 (+0100) Subject: Allow forcing colored system test output X-Git-Tag: v9.11.4rc1~106^2~1 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=cbebf7ef5995c7214b63340fd8ac7ef03f8b53d7;p=thirdparty%2Fbind9.git Allow forcing colored system test output As parallel.mk and runsequential.sh both pipe system test output through "tee" (for the purpose of creating test.output), run.sh invoked from these two files detects it is not writing to a terminal, which prevents colored output from being generated. Allow forcing colored output using a new command line argument for runall.sh, "-c", which sets an environment variable (SYSTEMTEST_FORCE_COLOR) causing conf.sh to unconditionally enable colored output. The same environment variable can also be used directly to force colored output when using "make test" instead of runall.sh. (cherry picked from commit a324031a82a2b312d8f803040dd81eadb554785f) --- diff --git a/bin/tests/system/README b/bin/tests/system/README index 659641f04f9..3434a7bf07c 100644 --- a/bin/tests/system/README +++ b/bin/tests/system/README @@ -127,7 +127,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. @@ -156,6 +159,8 @@ to running make, e.g. 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 diff --git a/bin/tests/system/conf.sh.in b/bin/tests/system/conf.sh.in index b778690dfbe..e61c7fa1181 100644 --- a/bin/tests/system/conf.sh.in +++ b/bin/tests/system/conf.sh.in @@ -162,7 +162,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/runall.sh b/bin/tests/system/runall.sh index a4a477214cd..284a6a50d4a 100644 --- a/bin/tests/system/runall.sh +++ b/bin/tests/system/runall.sh @@ -9,7 +9,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". @@ -22,14 +24,16 @@ SYSTEMTESTTOP=. . $SYSTEMTESTTOP/conf.sh -usage="Usage: ./runall.sh [-n] [numprocesses]" +usage="Usage: ./runall.sh [-c] [-n] [numprocesses]" +SYSTEMTEST_FORCE_COLOR=0 SYSTEMTEST_NO_CLEAN=0 -# Handle "-n" switch if present. +# Handle command line switches if present. -while getopts "n" flag; do +while getopts "cn" flag; do case "$flag" in + c) SYSTEMTEST_FORCE_COLOR=1 ;; n) SYSTEMTEST_NO_CLEAN=1 ;; esac done @@ -55,6 +59,7 @@ fi # Run the tests. +export SYSTEMTEST_FORCE_COLOR export SYSTEMTEST_NO_CLEAN status=0