summaryrefslogtreecommitdiff
path: root/t/parallel-tests-exit-status-reported.sh
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2013-12-24 17:45:18 +0100
committerStefano Lattarini <stefano.lattarini@gmail.com>2013-12-24 22:14:51 +0100
commitc7e2fb2e73b2d1b904feef0ed5e87ce05a41c119 (patch)
tree0f2cf9fa68987c5a74231a3e8c630c62163384f4 /t/parallel-tests-exit-status-reported.sh
parent526c4b04a699fd62da6bc3915cdb333f0a6ca92d (diff)
downloadautomake-c7e2fb2e73b2d1b904feef0ed5e87ce05a41c119.tar.gz
testsuite harness: report test exit status in log file
The exit status of a test should be reported in the test logs, so that one can see at a glance whether the test has succeeded or failed, without having to look also into the corresponding .trs file. This fixes automake bug#11814. * lib/test-driver: Also report the test script exit status in the test log (as the last line). * t/check-exit-status-reported.sh: Test this new behaviour. * t/list-of-tests.mk: Add the new test. * t/ax/test-lib.sh( am_exit_trap): No longer log the test exit status; this has been made redundant by the change to 'test-driver'. While at it, fix an imperfect quoting. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 't/parallel-tests-exit-status-reported.sh')
-rw-r--r--t/parallel-tests-exit-status-reported.sh68
1 files changed, 68 insertions, 0 deletions
diff --git a/t/parallel-tests-exit-status-reported.sh b/t/parallel-tests-exit-status-reported.sh
new file mode 100644
index 000000000..d40f1f58a
--- /dev/null
+++ b/t/parallel-tests-exit-status-reported.sh
@@ -0,0 +1,68 @@
+#! /bin/sh
+# Copyright (C) 2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# The exit status of a test should be reported in the test logs, so
+# that one can see at a glance whether the test has succeeded or failed,
+# without having to look also into the corresponding .trs file.
+# See automake bug#11814.
+
+. test-init.sh
+
+echo AC_OUTPUT >> configure.ac
+
+echo XFAIL_TESTS = t3.test t00.test > Makefile.am
+echo TESTS = t00.test >> Makefile.am
+for s in 0 1 2 3 5 77 78 99 100 126 127; do
+ echo "TESTS += t${s}.test" >> Makefile.am
+ cat > t${s}.test <<END
+#!/bin/sh
+printf "%s\\n%s\\n" 'random' 'will exit with status $s'
+exit $s
+END
+done
+cp t0.test t00.test
+
+chmod a+x *.test
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+
+./configure
+run_make -e FAIL check
+ls -l # For debugging.
+
+match_result ()
+{
+ cat "$1.log" # For debugging.
+ test $(wc -l <"$1.log") -eq 3
+ sed -n '$p' "$1.log" | grep "^$2 $1\\.test (exit status: $3)$"
+}
+
+match_result t0 PASS 0
+match_result t00 XPASS 0
+match_result t1 FAIL 1
+match_result t2 FAIL 2
+match_result t3 XFAIL 3
+match_result t5 FAIL 5
+match_result t77 SKIP 77
+match_result t78 FAIL 78
+match_result t99 ERROR 99
+match_result t100 FAIL 100
+match_result t126 FAIL 126
+match_result t127 FAIL 127
+
+: