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 <smcv@debian.org>
This commit is contained in:
Simon McVittie 2019-08-24 15:37:29 +01:00 committed by Georges Basile Stavracas Neto
parent 9b9b912765
commit 8ae641aa24

View File

@ -1,5 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -o pipefail
if test -z "$G_DEBUG"; then if test -z "$G_DEBUG"; then
G_DEBUG=fatal-warnings G_DEBUG=fatal-warnings
else else
@ -69,7 +71,12 @@ get_status()
run_test() 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=$? TMP=$?
var_name=$2_result var_name=$2_result
eval "$var_name=$TMP" eval "$var_name=$TMP"