From 8ae641aa248fa36c626459fc6292e0615ad3b7ca Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sat, 24 Aug 2019 15:37:29 +0100 Subject: [PATCH] cogl tests: Show the actual output from tests if VERBOSE is set Writing tests' output to a log file makes them difficult to debug when the test might be running on an autobuilder or CI system where only stdout/stderr are recorded. This is particularly troublesome if a failure is only reproducible on a particular autobuilder. Recent Automake versions have the convention that detailed output from failing tests is written to stdout/stderr, not just to log files, when the VERBOSE environment variable is set; borrow that convention as a trigger for producing detailed test output. This was originally cogl!14, but applies equally to mutter's fork of cogl. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1273 Signed-off-by: Simon McVittie --- cogl/tests/run-tests.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cogl/tests/run-tests.sh b/cogl/tests/run-tests.sh index 825dd1251..ce7580fbe 100755 --- a/cogl/tests/run-tests.sh +++ b/cogl/tests/run-tests.sh @@ -1,5 +1,7 @@ #!/usr/bin/env bash +set -o pipefail + if test -z "$G_DEBUG"; then G_DEBUG=fatal-warnings else @@ -69,7 +71,12 @@ get_status() run_test() { - $("$TEST_BINARY" "$1" &> "$LOG") + if [ -n "${VERBOSE-}" ]; then + echo "running $TEST_BINARY $1:" + $TEST_BINARY $1 2>&1 | tee "$LOG" + else + $($TEST_BINARY $1 &> "$LOG") + fi TMP=$? var_name=$2_result eval "$var_name=$TMP"