Instead of colorizing the output of PASS/SKIP/FAIL all the time, do it only when stdout is plugged to a terminal, which is generally a good indication that colors will be helpful. When stdout is instead redirected, say, to a file, it's not easy to parse the results of the tests. When analyzing and extracting information out of the logs, it would be better to strip the color information and just keep the test results. Signed-off-by: Daniel Díaz <daniel.diaz@xxxxxxxxxx> --- scripts/runtime.bash | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/scripts/runtime.bash b/scripts/runtime.bash index 200d5b6..d4de6b1 100644 --- a/scripts/runtime.bash +++ b/scripts/runtime.bash @@ -2,9 +2,21 @@ : ${MAX_SMP:=$(getconf _NPROCESSORS_CONF)} : ${TIMEOUT:=90s} -PASS() { echo -ne "\e[32mPASS\e[0m"; } -SKIP() { echo -ne "\e[33mSKIP\e[0m"; } -FAIL() { echo -ne "\e[31mFAIL\e[0m"; } +# Define text colors +color_reset= +color_red= +color_green= +color_yellow= +# If stdout is plugged to terminal, use colors +if [ -t 1 ]; then + color_reset="\e[0m" + color_red="\e[31m" + color_green="\e[32m" + color_yellow="\e[33m" +fi +PASS() { echo -ne "${color_green}PASS${color_reset}"; } +SKIP() { echo -ne "${color_yellow}SKIP${color_reset}"; } +FAIL() { echo -ne "${color_red}FAIL${color_reset}"; } extract_summary() { -- 2.17.1