diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2013-05-23 21:33:03 +0200 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2013-05-23 21:43:32 +0200 |
commit | b757a99bd3c2d77c319bb7876f0ad324ac3b93a9 (patch) | |
tree | 229b2ded9b652a8bffb3fc88f9b973d322e50d60 | |
parent | ac3a5a12598bb44a6c748964d2ed46eb899dbc04 (diff) | |
parent | a0db09fe9eb8b03415a5dd00ff031f5a17096108 (diff) | |
download | automake-b757a99bd3c2d77c319bb7876f0ad324ac3b93a9.tar.gz |
Merge branch 'master' into ng/master
* master:
tests: avoid few lingering $MAKE redirections
tests: avoid '$MAKE' redirections, use 'run_make' instead
tests: avoid use of redirected 'run_make' invocations
lint: warn against redirected 'run_make' invocations
comments: next GNU make release 4.0, not 3.83
tests: fix a potential spurious failure due to global config.site
HACKING: it's OK to do testsuite refactoring in a micro version
tests: remove some code duplication
cosmetics: remove a couple of extra whitespaces in tests
tests: two minor fixups
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
183 files changed, 446 insertions, 855 deletions
@@ -116,7 +116,10 @@ * Micro releases should be just bug-fixing releases; no new features should be added, and ideally, only trivial bugs, recent regressions, - or documentation issues should be addressed by them. + or documentation issues should be addressed by them. On the other + hand, it's OK to include testsuite work and even testsuite refactoring + in a micro version, since a regression there is not going to annoy or + inconvenience Automake users, but only the Automake developers. * Minor releases can introduce new "safe" features, do non-trivial but mostly safe code clean-ups, and even add new runtime warnings (rigorously diff --git a/maintainer/syntax-checks.mk b/maintainer/syntax-checks.mk index 0bdeed3b3..a7d354eca 100644 --- a/maintainer/syntax-checks.mk +++ b/maintainer/syntax-checks.mk @@ -74,6 +74,7 @@ sc_tests_no_source_defs \ sc_tests_obsolete_variables \ sc_tests_here_document_format \ sc_tests_command_subst \ +sc_tests_no_run_make_redirect \ sc_tests_exit_not_Exit \ sc_tests_automake_fails \ sc_tests_required_after_defs \ @@ -493,6 +494,16 @@ sc_tests_no_source_defs: exit 1; \ fi +## Invocation of 'run_make' should not have output redirections. +sc_tests_no_run_make_redirect: + @if grep -Pzo '.*(\$$MAKE|\brun_make)\b(.*(\\\n))*.*>.*' $(xtests); \ + then \ + echo 'Do not redirect stdout/stderr in "run_make" or "$$MAKE"' \ + 'invocations,' >&2; \ + echo 'use "run_make {-E|-O|-M}" instead.' >&2; \ + exit 1; \ + fi + ## Use AUTOMAKE_fails when appropriate sc_tests_automake_fails: @if grep -v '^#' $(xtests) | grep '\$$AUTOMAKE.*&&.*exit'; then \ diff --git a/t/aclocal-amflags.sh b/t/aclocal-amflags.sh index 10f0cb185..dddc5cf64 100644 --- a/t/aclocal-amflags.sh +++ b/t/aclocal-amflags.sh @@ -66,8 +66,7 @@ $sleep sed 's/MACRO_FOO/MACRO_BAR/' configure.ac > t mv -f t configure.ac -$MAKE Makefile >output 2>&1 || { cat output; exit 1; } -cat output +run_make -M Makefile grep "^aclocal.*:.*found macro.*MACRO_BAR.*m4_2/bar\.m4" output grep "macro.*MACRO_FOO" output && exit 1 test ! -r foo diff --git a/t/aclocal-autoconf-version-check.sh b/t/aclocal-autoconf-version-check.sh index 29aee30cc..64910d04a 100644 --- a/t/aclocal-autoconf-version-check.sh +++ b/t/aclocal-autoconf-version-check.sh @@ -43,8 +43,7 @@ sed 's/^dnl!! //' < configure.ac > configure.tmp cmp configure.ac configure.tmp && fatal_ 'failed to edit configure.ac' mv -f configure.tmp configure.ac -$MAKE 2>stderr || { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E grep 'You have another version of autoconf' stderr grep 'aclocal.m4:.*this file was generated for autoconf 9999a' stderr diff --git a/t/alpha.sh b/t/alpha.sh index 5f01629b9..bbcc14b94 100644 --- a/t/alpha.sh +++ b/t/alpha.sh @@ -60,11 +60,12 @@ $AUTOMAKE ./configure # "make distdir" should fail because NEWS does not mention 1.0a -$MAKE check 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E -e FAIL check grep 'NEWS not updated' stderr test ! -e works echo 'alpha 1.0a released' > NEWS $MAKE check test -f works + +: diff --git a/t/autohdr-subdir-pr12495.sh b/t/autohdr-subdir-pr12495.sh index 72d72100b..7ded8ebb8 100644 --- a/t/autohdr-subdir-pr12495.sh +++ b/t/autohdr-subdir-pr12495.sh @@ -67,8 +67,7 @@ ocwd=$(pwd) for x in b c; do test $x = b || cd sub rm -f $x.h.in - $MAKE $x.h.in 2>stderr && { cat stderr >&2; exit 1; } - cat stderr >&2 + run_make -E -e FAIL $x.h.in test ! -f $x.h.in grep "No rule to make target [\`\"']$x\.h\.in[\`\"']" stderr : > $x.h.in diff --git a/t/ax/am-test-lib.sh b/t/ax/am-test-lib.sh index 8f06b1daa..903254e08 100644 --- a/t/ax/am-test-lib.sh +++ b/t/ax/am-test-lib.sh @@ -325,6 +325,36 @@ grep_configure_help () $EGREP "$2" am--our-help || exit 1 } +null_install () +{ + for am__v in nulldirs destdir instdir; do + if ! eval 'test -n "$'$am__v'"'; then + fatal_ "null_install() invoked with \$$am__v unset" + fi + done + unset am__v + case $#,$1 in + 0,) + am__inst='install';; + 1,-t|1,--texi) + am__inst='install install-html install-dvi install-ps install-pdf';; + *) + fatal_ "null_install(): invalid usage";; + esac + run_make $nulldirs $am__inst + test ! -e "$instdir" + run_make $nulldirs $am__inst DESTDIR="$destdir" + test ! -e "$instdir" + test ! -e "$destdir" + run_make -M $nulldirs uninstall + # Creative quoting below to please maintainer-check. + grep 'rm'' ' output && exit 1 + run_make -M $nulldirs uninstall DESTDIR="$destdir" + # Creative quoting below to please maintainer-check. + grep 'rm'' ' output && exit 1 + : # For 'set -e'. +} + # count_test_results total=N pass=N fail=N xpass=N xfail=N skip=N error=N # ----------------------------------------------------------------------- # Check that a testsuite run driven by the parallel-tests harness has diff --git a/t/ax/depcomp.sh b/t/ax/depcomp.sh index 1534d5f8e..03b0b7e17 100644 --- a/t/ax/depcomp.sh +++ b/t/ax/depcomp.sh @@ -160,8 +160,7 @@ case $depcomp_with_libtool in echo lib_LTLIBRARIES = libfoo.la >> Makefile.am make_ok () { - $MAKE ${1+"$@"} >output 2>&1 || { cat output; return 1; } - cat output + run_make -M -- ${1+"$@"} $FGREP 'unknown directive' output && return 1 rm -f output # Checks for stray files possibly left around by less common diff --git a/t/ax/tap-summary-aux.sh b/t/ax/tap-summary-aux.sh index 227007930..472c43f4b 100644 --- a/t/ax/tap-summary-aux.sh +++ b/t/ax/tap-summary-aux.sh @@ -53,7 +53,6 @@ do_check () shift cat > summary.exp cat all.test - st=0 if test $use_colors = yes; then # Forced colorization should take place also with non-ANSI terminals; # hence the "TERM=dumb" definition. @@ -61,12 +60,11 @@ do_check () else make_args= fi - run_make $make_args check > stdout || st=$? - cat stdout + run_make -O -e IGNORE $make_args check if test $expect_failure = yes; then - test $st -gt 0 || exit 1 + test $am_make_rc_got -gt 0 || exit 1 else - test $st -eq 0 || exit 1 + test $am_make_rc_got -eq 0 || exit 1 fi $PERL "$am_testaux_srcdir"/extract-testsuite-summary.pl stdout >summary.got \ || fatal_ "cannot extract testsuite summary" diff --git a/t/ax/testsuite-summary-checks.sh b/t/ax/testsuite-summary-checks.sh index ff7cc8eea..2f1f8010b 100644 --- a/t/ax/testsuite-summary-checks.sh +++ b/t/ax/testsuite-summary-checks.sh @@ -73,8 +73,7 @@ do_check () case $t in fail*|xpass*|error*) expect_failure=:;; esac case $t in xfail*|xpass*) xfail_tests="$xfail_tests $t";; esac done - run_make -e IGNORE check TESTS="$tests" XFAIL_TESTS="$xfail_tests" >stdout - cat stdout + run_make -O -e IGNORE check TESTS="$tests" XFAIL_TESTS="$xfail_tests" if $expect_failure; then test $am_make_rc_got -gt 0 || exit 1 else diff --git a/t/built-sources-check.sh b/t/built-sources-check.sh index e528b707d..9c81b0ebe 100644 --- a/t/built-sources-check.sh +++ b/t/built-sources-check.sh @@ -58,8 +58,7 @@ $AUTOCONF $AUTOMAKE -a ./configure --prefix "$(pwd)/inst" -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check grep '^PASS: subrun\.sh *$' stdout grep 'PASS.*echo\.sh' stdout && exit 1 diff --git a/t/built-sources-fork-bomb.sh b/t/built-sources-fork-bomb.sh index b1ef2e70c..3ab5eef88 100644 --- a/t/built-sources-fork-bomb.sh +++ b/t/built-sources-fork-bomb.sh @@ -54,15 +54,12 @@ $AUTOCONF ./configure -$MAKE -n foo >output 2>&1 || { cat output; exit 1; } -cat output +run_make -M -- -n foo test ! -f foo # Guard against possible infinite recursion. $FGREP '::OOPS::' output && exit 1 -$MAKE foo >output 2>&1 || { cat output; exit 1; } -cat output -$MAKE foo +run_make -M -- foo # Guard against possible infinite recursion. $FGREP '::OOPS::' output && exit 1 diff --git a/t/ccnoco3.sh b/t/ccnoco3.sh index 0379f7390..c2c38a7ae 100644 --- a/t/ccnoco3.sh +++ b/t/ccnoco3.sh @@ -52,8 +52,7 @@ mkdir build cd build ../configure -$MAKE 2>stderr || { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E grep 'mv.*the same file' stderr && exit 1 : diff --git a/t/check-fd-redirect.sh b/t/check-fd-redirect.sh index 661c59aee..80f786776 100644 --- a/t/check-fd-redirect.sh +++ b/t/check-fd-redirect.sh @@ -46,10 +46,7 @@ do_check () cat foo.test # For debugging. echo 'this line will be removed' > four echo 'this line will not be removed' > five - st=0 - echo 'ok ok ok' | $MAKE check >stdout 2>stderr || st=1 - cat stdout - cat stderr >&2 + st=0; echo 'ok ok ok' | run_make -O -E -e IGNORE check || st=$? cat four test x"$am_serial_tests" = x"yes" || cat foo.log test $st -eq 0 diff --git a/t/check-tests-in-builddir.sh b/t/check-tests-in-builddir.sh index 1c41368a1..2d71f700b 100644 --- a/t/check-tests-in-builddir.sh +++ b/t/check-tests-in-builddir.sh @@ -52,41 +52,38 @@ exit 0 END chmod a+x bar.test -$MAKE check >out 2>&1 || { cat out; exit 1; } -cat out +run_make -M check # The serial test driver does not strip VPATH components from # the name of the test, but the parallel driver should. if test x"$am_serial_tests" = x"yes"; then - grep '^PASS: .*foo\.test *$' out + grep '^PASS: .*foo\.test *$' output else - grep '\.\./foo' out && exit 1 - grep '^PASS: foo\.test *$' out + grep '\.\./foo' output && exit 1 + grep '^PASS: foo\.test *$' output fi -grep '^PASS: bar\.test *$' out +grep '^PASS: bar\.test *$' output rm -f test-suite.log foo.log bar.log -FOO_EXIT_STATUS=1 $MAKE check >out 2>&1 && { cat out; exit 1; } -cat out +run_make -M -e FAIL FOO_EXIT_STATUS=1 check # The serial test driver does not strip VPATH components from # the name of the test, but the parallel driver should. if test x"$am_serial_tests" = x"yes"; then - grep '^FAIL: .*foo\.test *$' out + grep '^FAIL: .*foo\.test *$' output else - grep '\.\./foo' out && exit 1 - grep '^FAIL: foo\.test *$' out + grep '\.\./foo' output && exit 1 + grep '^FAIL: foo\.test *$' output fi -grep '^PASS: bar\.test *$' out +grep '^PASS: bar\.test *$' output rm -f test-suite.log foo.log bar.log # Check that if the same test is present in srcdir and builddir, # the one in builddir is preferred. cp bar.test foo.test -FOO_EXIT_STATUS=1 $MAKE check >out 2>&1 || { cat out; exit 1; } -cat out -grep '^PASS: foo\.test *$' out -grep '^PASS: bar\.test *$' out +run_make -M FOO_EXIT_STATUS=1 check +grep '^PASS: foo\.test *$' output +grep '^PASS: bar\.test *$' output # The tests in the builddir must be preferred also by "make dist". FOO_EXIT_STATUS=1 $MAKE distcheck diff --git a/t/check11.sh b/t/check11.sh index 54c692435..6be5aad1c 100644 --- a/t/check11.sh +++ b/t/check11.sh @@ -40,8 +40,7 @@ $AUTOMAKE -a ./configure -$MAKE check TESTS=skip >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O TESTS=skip check if test x"$am_serial_tests" = x"yes"; then grep '1.*passed' stdout && exit 1 : For shells with buggy 'set -e'. @@ -49,8 +48,7 @@ else count_test_results total=1 pass=0 fail=0 skip=1 xfail=0 xpass=0 error=0 fi -$MAKE check TESTS="skip skip2" >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O TESTS="skip skip2" check if test x"$am_serial_tests" = x"yes"; then grep '2.*passed' stdout && exit 1 : For shells with buggy 'set -e'. diff --git a/t/check2.sh b/t/check2.sh index 0662e505f..f45669735 100644 --- a/t/check2.sh +++ b/t/check2.sh @@ -51,8 +51,7 @@ $AUTOCONF $AUTOMAKE ./configure -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check grep '^PASS: subrun\.sh *$' stdout grep 'PASS.*echo\.sh' stdout && exit 1 diff --git a/t/check4.sh b/t/check4.sh index a7f8d28e8..965f10ce8 100644 --- a/t/check4.sh +++ b/t/check4.sh @@ -51,27 +51,23 @@ $AUTOMAKE --add-missing ./configure --prefix "$(pwd)/inst" -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL -- check grep '^FAIL: fail\.sh *$' stdout grep '^PASS: ok\.sh *$' stdout && exit 1 -$MAKE -k check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL -- -k check grep '^FAIL: fail\.sh *$' stdout grep '^PASS: ok\.sh *$' stdout # Should also works when -k is not in first position. -$MAKE -s -k check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL -- -s -k check grep '^FAIL: fail\.sh *' stdout grep '^PASS: ok\.sh *' stdout # Try with a long-option that do not have a short option equivalent # (here, --no-print-directory). That should cause all options to # appear verbatim in MAKEFLAGS. -$MAKE --no-print-directory -k check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL -- --no-print-directory -k check grep '^FAIL: fail\.sh *$' stdout grep '^PASS: ok\.sh *$' stdout diff --git a/t/check8.sh b/t/check8.sh index e375db067..a14b30c49 100644 --- a/t/check8.sh +++ b/t/check8.sh @@ -63,10 +63,8 @@ $AUTOCONF $AUTOMAKE -a ./configure -AM_COLOR_TESTS=always $MAKE check >stdout 2>stderr \ - && { cat stdout; cat stderr >&2; exit 1; } -cat stdout -cat stderr >&2 + +run_make -E -O -e FAIL check grep 'XPASS.* foo$' stdout grep '^[^X]*PASS.* sub/foo$' stdout grep '^[^X]*PASS.* bar' stdout @@ -83,8 +81,7 @@ $MAKE distclean mkdir build cd build ../configure -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check # Note: we are not grepping for the space in the lines from the 'foo' # tests, due to the Solaris make VPATH rewriting (if we fix that, we # can still write a separate test for it). diff --git a/t/colon6.sh b/t/colon6.sh index a60842f21..913ee7ed4 100644 --- a/t/colon6.sh +++ b/t/colon6.sh @@ -82,8 +82,7 @@ for vpath in : false; do # version.good should depend on version.gin. rm -f version.good - $MAKE version.good 2>stderr && { cat stderr >&2; exit 1; } - cat stderr >&2 + run_make -E -e FAIL version.good # Try to verify that we errored out for the right reason. $FGREP version.gin stderr diff --git a/t/color-tests.sh b/t/color-tests.sh index 22567a908..c3dac04bf 100644 --- a/t/color-tests.sh +++ b/t/color-tests.sh @@ -109,13 +109,11 @@ for vpath in false :; do # Forced colorization should take place also with non-ANSI terminals; # hence the "TERM=dumb" definition. AM_COLOR_TESTS=always; export AM_COLOR_TESTS - run_make TERM=dumb check >stdout && { cat stdout; exit 1; } - cat stdout + run_make -e FAIL -O TERM=dumb check test_color unset AM_COLOR_TESTS - run_make TERM=ansi check >stdout && { cat stdout; exit 1; } - cat stdout + run_make -e FAIL -O TERM=ansi check test_no_color $MAKE distclean diff --git a/t/color-tests2.sh b/t/color-tests2.sh index 4f136e7de..128f170b0 100644 --- a/t/color-tests2.sh +++ b/t/color-tests2.sh @@ -103,6 +103,13 @@ test_no_color () : } +our_make () +{ + set "MAKE=$MAKE" ${1+"$@"} + env "$@" expect -f $srcdir/expect-make >stdout || { cat stdout; exit 1; } + cat stdout +} + cat >expect-make <<'END' eval spawn $env(MAKE) check expect eof @@ -120,31 +127,21 @@ for vpath in false :; do $srcdir/configure - TERM=ansi MAKE=$MAKE expect -f $srcdir/expect-make >stdout \ - || { cat stdout; exit 1; } - cat stdout + our_make TERM=ansi test_color - TERM=dumb MAKE=$MAKE expect -f $srcdir/expect-make >stdout \ - || { cat stdout; exit 1; } - cat stdout + our_make TERM=dumb test_no_color - MAKE="$MAKE AM_COLOR_TESTS=no" expect -f $srcdir/expect-make >stdout \ - || { cat stdout; exit 1; } - cat stdout + our_make TERM=ansi MAKE="$MAKE AM_COLOR_TESTS=no" test_no_color $srcdir/configure testsuite_colorized=false - TERM=ansi MAKE=$MAKE expect -f $srcdir/expect-make >stdout \ - || { cat stdout; exit 1; } - cat stdout + our_make TERM=ansi test_no_color - TERM=ansi MAKE="$MAKE AM_COLOR_TESTS=always" \ - expect -f $srcdir/expect-make >stdout || { cat stdout; exit 1; } - cat stdout + our_make TERM=dumb MAKE="$MAKE AM_COLOR_TESTS=always" test_color $MAKE distclean diff --git a/t/cond34.sh b/t/cond34.sh index ea78a7140..995aab9a8 100644 --- a/t/cond34.sh +++ b/t/cond34.sh @@ -54,22 +54,18 @@ $AUTOCONF $AUTOMAKE ./configure -$MAKE dep-test1 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O dep-test1 $FGREP 'BEG: one.z somethingelse.a :END' stdout -$MAKE dep-test2 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O dep-test2 $FGREP 'BEG: three.z :END' stdout ./configure two=2 -$MAKE dep-test1 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O dep-test1 $FGREP 'BEG: two.z somethingelse.a :END' stdout -$MAKE dep-test2 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O dep-test2 $FGREP 'BEG: two.z somethingelse.a :END' stdout : diff --git a/t/cond37.sh b/t/cond37.sh index 18beca159..429593749 100644 --- a/t/cond37.sh +++ b/t/cond37.sh @@ -39,19 +39,15 @@ $AUTOCONF $AUTOMAKE ./configure -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check grep GrepMe1 stdout && exit 1 -$MAKE install >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O install grep GrepMe2 stdout ./configure case_A=1 -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check grep GrepMe1 stdout -$MAKE install >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O install grep GrepMe2 stdout && exit 1 : diff --git a/t/cond39.sh b/t/cond39.sh index 3e33d00ef..819b01444 100644 --- a/t/cond39.sh +++ b/t/cond39.sh @@ -78,8 +78,7 @@ $AUTOCONF $AUTOMAKE --add-missing ./configure COND=true -$MAKE 2>stderr || { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E grep 'overriding commands' stderr && exit 1 $MAKE sure-exist ./prog1 && exit 1 @@ -93,8 +92,7 @@ $MAKE sure-exist $MAKE distclean ./configure COND=false -$MAKE 2>stderr || { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E grep 'overriding commands' stderr && exit 1 ./prog1 ./sub/prog2 diff --git a/t/conff.sh b/t/conff.sh index 450d7be8c..bebed7780 100644 --- a/t/conff.sh +++ b/t/conff.sh @@ -47,11 +47,9 @@ $AUTOMAKE $MAKE cd bar -$MAKE top-rule >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O top-rule grep 'top rule' stdout -$MAKE bot-rule >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O bot-rule grep 'bot rule' stdout cd .. @@ -64,11 +62,9 @@ END $MAKE cd bar -$MAKE top-rule >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O top-rule grep 'top2 rule' stdout -$MAKE bot-rule >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O bot-rule grep 'bot rule' stdout cd .. @@ -81,11 +77,9 @@ END $MAKE cd bar -$MAKE top-rule >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O top-rule grep 'top2 rule' stdout -$MAKE bot-rule >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O bot-rule grep 'bot2 rule' stdout cd .. diff --git a/t/conffile-leading-dot.sh b/t/conffile-leading-dot.sh index 20a769b27..e066ccba2 100644 --- a/t/conffile-leading-dot.sh +++ b/t/conffile-leading-dot.sh @@ -53,8 +53,7 @@ $sleep touch Makefile.am # Check that remake rules do truly break -- otherwise automake is # giving a bogus warning. -$MAKE 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -e FAIL -E grep "config\\.status:.*invalid argument.*Makefile" stderr : diff --git a/t/cscope.tap b/t/cscope.tap index 5fc455b7f..b02117d38 100644 --- a/t/cscope.tap +++ b/t/cscope.tap @@ -105,8 +105,7 @@ test_cscope () fi r=ok - $MAKE cscope 2>stderr || r='not ok' - cat stderr >&2 + run_make -E cscope || r='not ok' grep 'cannot find file' stderr && r='not ok' rm -f stderr result_ "$r" "[$pfx] make cscope" diff --git a/t/dejagnu3.sh b/t/dejagnu3.sh index 8aac44f6c..576edc790 100644 --- a/t/dejagnu3.sh +++ b/t/dejagnu3.sh @@ -62,9 +62,8 @@ $MAKE distcheck # Ensure that the envvar RUNTESTFLAGS is used. # Report from Mark Mitchell. -RUNTESTFLAGS=--unknown-runtest-option $MAKE check >output 2>&1 \ - && { cat output; exit 1; } -cat output +RUNTESTFLAGS=--unknown-runtest-option; export RUNTESTFLAGS +run_make -M -e FAIL check $FGREP 'unknown-runtest-option' output : diff --git a/t/deleted-am.sh b/t/deleted-am.sh index 78c1ad973..a651de52f 100644 --- a/t/deleted-am.sh +++ b/t/deleted-am.sh @@ -35,8 +35,7 @@ $AUTOMAKE $MAKE rm -f zardoz.am -$MAKE 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -e FAIL -E # This error will come from automake, not make, so we can be stricter # in our grepping of it. grep 'cannot open.*zardoz\.am' stderr @@ -48,8 +47,8 @@ $AUTOMAKE Makefile ./config.status Makefile $MAKE # Sanity check. rm -f foobar.am -$MAKE 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +$sleep # Required to avoid racy failures with FreeBSD make. +run_make -e FAIL -E # This error will come from automake, not make, so we can be stricter # in our grepping of it. grep 'cannot open.*foobar\.am' stderr diff --git a/t/deleted-m4.sh b/t/deleted-m4.sh index d11a058b6..b2eb25c6f 100644 --- a/t/deleted-m4.sh +++ b/t/deleted-m4.sh @@ -39,8 +39,7 @@ $AUTOMAKE $MAKE rm -f zardoz.m4 -$MAKE 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -e FAIL -E # This error will come from aclocal, not make, so we can be stricter # in our grepping of it. grep ' foobar\.m4:1:.*zardoz\.m4.*does not exist' stderr @@ -54,8 +53,7 @@ $AUTOCONF ./configure $MAKE # Sanity check. rm -f foobar.m4 -$MAKE 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -e FAIL -E # This error will come from aclocal, not make, so we can be stricter # in our grepping of it. grep 'foobar\.m4.*does not exist' stderr diff --git a/t/dist-missing-am.sh b/t/dist-missing-am.sh index 57d5fb08e..6d45a0372 100644 --- a/t/dist-missing-am.sh +++ b/t/dist-missing-am.sh @@ -54,8 +54,7 @@ for vpath in false :; do cd $distdir ./configure fi - $MAKE 2>stderr && { cat stderr >&2; exit 1; } - cat stderr >&2 + run_make -e FAIL -E # This error comes from automake, not make, so we can be stricter # in our grepping of it. grep 'cannot open.*zardoz\.am' stderr diff --git a/t/dist-missing-included-m4.sh b/t/dist-missing-included-m4.sh index fa185458f..1d4ef6c6a 100644 --- a/t/dist-missing-included-m4.sh +++ b/t/dist-missing-included-m4.sh @@ -56,8 +56,7 @@ for vpath in false :; do cd $distdir ./configure fi - $MAKE 2>stderr && { cat stderr >&2; exit 1; } - cat stderr + run_make -e FAIL -E # This error will come from automake, not make, so we can be stricter # in our grepping of it. grep 'zardoz\.m4.*does not exist' stderr diff --git a/t/dist-missing-m4.sh b/t/dist-missing-m4.sh index 4d874467c..e4d04bf55 100644 --- a/t/dist-missing-m4.sh +++ b/t/dist-missing-m4.sh @@ -59,8 +59,7 @@ for vpath in false :; do cd $distdir ./configure fi - $MAKE 2>stderr && { cat stderr; exit 1; } - cat stderr + run_make -e FAIL -E # This error will come from autoconf, not make, so we can be stricter # in our grepping of it. grep 'possibly undefined .*MY_ZARDOZ' stderr diff --git a/t/distcheck-configure-flags-am.sh b/t/distcheck-configure-flags-am.sh index 4f8043c85..48f917e98 100644 --- a/t/distcheck-configure-flags-am.sh +++ b/t/distcheck-configure-flags-am.sh @@ -54,8 +54,7 @@ END $AUTOMAKE Makefile ./config.status Makefile -$MAKE distcheck 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E -e FAIL distcheck grep "^configure:.* success='no', sentence='it works :-)'" stderr $MAKE distcheck DISTCHECK_CONFIGURE_FLAGS="--enable-success=yes" diff --git a/t/distcheck-configure-flags-subpkg.sh b/t/distcheck-configure-flags-subpkg.sh index 70bb05c1a..6d857b40c 100644 --- a/t/distcheck-configure-flags-subpkg.sh +++ b/t/distcheck-configure-flags-subpkg.sh @@ -74,8 +74,7 @@ $MAKE distcheck # ... but not when "make distcheck" is run from the subpackage. cd subpkg -$MAKE distcheck 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E -e FAIL distcheck grep '^configure:.* dc=KO am_dc=KO' stderr : diff --git a/t/distcheck-configure-flags.sh b/t/distcheck-configure-flags.sh index 2a039ab23..27d455f24 100644 --- a/t/distcheck-configure-flags.sh +++ b/t/distcheck-configure-flags.sh @@ -46,8 +46,7 @@ $MAKE distcheck \ DISTCHECK_CONFIGURE_FLAGS="--enable-success=yes sentence='it works :-)'" # Sanity check. -$MAKE distcheck 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E -e FAIL distcheck grep "^configure:.* success='no', sentence=''" stderr : diff --git a/t/distcheck-missing-m4.sh b/t/distcheck-missing-m4.sh index 34260c4be..3d99e62b4 100644 --- a/t/distcheck-missing-m4.sh +++ b/t/distcheck-missing-m4.sh @@ -72,8 +72,7 @@ check_no_spurious_error () ./configure -$MAKE distcheck >output 2>&1 && { cat output; exit 1; } -cat output +run_make -M -e FAIL distcheck for x in bar baz zar; do $EGREP "required m4 file.*not distributed.* $x.m4( |$)" output done @@ -97,8 +96,7 @@ END $MAKE $EGREP 'MY_(FOO|BAR|BAZ|QUX|ZAR|BLA)' configure && exit 1 # Sanity check. -$MAKE distcheck >output 2>&1 && { cat output; exit 1; } -cat output +run_make -M -e FAIL distcheck $EGREP "required m4 file.*not distributed.* qux.m4( |$)" output $EGREP "required m4 file.*not distributed.* bla.m4( |$)" output check_no_spurious_error diff --git a/t/distcheck-outdated-m4.sh b/t/distcheck-outdated-m4.sh index d7b05c103..d9f46a6c2 100644 --- a/t/distcheck-outdated-m4.sh +++ b/t/distcheck-outdated-m4.sh @@ -77,9 +77,7 @@ AC_DEFUN([MY_ZARDOZ], [:]) END $MAKE # Rebuild configure and makefiles. -$MAKE distcheck >output 2>&1 && { cat output; exit 1; } -cat output - +run_make -M -e FAIL distcheck $EGREP "required m4 file.* outdated.* baz.m4( |$)" output check_no_spurious_error # Check that we don't complain for files that aren't outdated. @@ -117,8 +115,7 @@ AC_DEFUN([MY_FNORD], [:]) END $MAKE # Rebuild configure and makefiles. -$MAKE distcheck >output 2>&1 && { cat output; exit 1; } -cat output +run_make -M -e FAIL distcheck $EGREP "required m4 file.* outdated.* fnord.m4( |$)" output check_no_spurious_error # Check that we don't complain for files that aren't outdated. diff --git a/t/distcheck-pr10470.sh b/t/distcheck-pr10470.sh index 466032c70..26cce1c50 100644 --- a/t/distcheck-pr10470.sh +++ b/t/distcheck-pr10470.sh @@ -49,8 +49,7 @@ $AUTOMAKE ./configure # We can build the distribution. -$MAKE distcheck 2>stderr || { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E -e FAIL distcheck # Sanity check: verify that our code has hit a problem removing # the distdir, but has recovered from it. grep "rm:.*$destdir" stderr || fatal_ "expected code path not covered" diff --git a/t/distcheck-pr9579.sh b/t/distcheck-pr9579.sh index 52302d251..454e7f030 100644 --- a/t/distcheck-pr9579.sh +++ b/t/distcheck-pr9579.sh @@ -54,9 +54,7 @@ $MAKE uninstall test -f inst/share/dir rm -rf inst -$MAKE distcheck 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 - +run_make -E -e FAIL distcheck grep 'ERROR: files left after uninstall:' stderr grep '/share/dir *$' stderr @@ -86,9 +84,7 @@ test -f inst/mu/share/info/dir test -f inst/share/info/more/dir rm -rf inst -$MAKE distcheck 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 - +run_make -E -e FAIL distcheck grep 'ERROR: files left after uninstall:' stderr grep '/mu/share/info/dir *$' stderr grep '/share/info/more/dir *$' stderr diff --git a/t/distcleancheck.sh b/t/distcleancheck.sh index 5e5bb9e8e..b91d8359b 100644 --- a/t/distcleancheck.sh +++ b/t/distcleancheck.sh @@ -62,9 +62,7 @@ mv -f t Makefile.am $AUTOMAKE ./configure $MAKE -$MAKE distcheck 2>stderr && { cat srderr >&2; exit 1; } -cat stderr >&2 - +run_make -E -e FAIL distcheck grep 'ERROR:.*files left in build directory after distclean' stderr grep '^\./foo\.1$' stderr diff --git a/t/distdir.sh b/t/distdir.sh index 0e946769a..6e1b012be 100644 --- a/t/distdir.sh +++ b/t/distdir.sh @@ -65,8 +65,7 @@ test -d foo && exit 1 rm -rf $me-1.0 # Remove the dot from VERSION for the next grep. -run_make -e IGNORE VERSION=10 MKDIR_P='echo MKDIR_P' distdir >stdout -cat stdout +run_make -O -e IGNORE VERSION=10 MKDIR_P='echo MKDIR_P' distdir # Make sure no './' appear in the directory names. srcdir is '..', so # this also checks that no directory is created in the source tree. diff --git a/t/distlinksbrk.sh b/t/distlinksbrk.sh index 8774c20c0..5614a6d1c 100644 --- a/t/distlinksbrk.sh +++ b/t/distlinksbrk.sh @@ -63,8 +63,7 @@ ls -l # For debugging. $MAKE distdir && exit 1 # Names of distributed broken symlinks should be reported in make output. -$MAKE -k distdir 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E -e FAIL -- -k distdir $FGREP $lnk1 stderr $FGREP $lnk2 stderr $FGREP $lnka stderr diff --git a/t/exeext.sh b/t/exeext.sh index 9e0526654..72902333e 100644 --- a/t/exeext.sh +++ b/t/exeext.sh @@ -69,8 +69,7 @@ grep 'maude3__EXEEXT__OBJECTS' Makefile.in && exit 1 ./configure -$MAKE EXEEXT=.foo print > stdout || { cat stdout; exit 1; } -cat stdout +run_make -O EXEEXT=.foo print grep '1BEG: maude.foo mt.foo :END1' stdout grep '2BEG: maude.static.foo :END2' stdout @@ -79,8 +78,7 @@ grep '4BEG: rmt.foo :END4' stdout ./configure revert=yes -$MAKE EXEEXT=.foo print > stdout || { cat stdout; exit 1; } -cat stdout +run_make -O EXEEXT=.foo print grep '1BEG: maude.foo :END1' stdout grep '2BEG: maude.static.foo :END2' stdout diff --git a/t/extra-deps-lt.sh b/t/extra-deps-lt.sh index 8d4af4437..095094141 100644 --- a/t/extra-deps-lt.sh +++ b/t/extra-deps-lt.sh @@ -68,8 +68,7 @@ $AUTOCONF : >foodep : >foodep2 : >bardep -$MAKE >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O grep 'making libfoodep' stdout rm -f bardep diff --git a/t/extra-deps.sh b/t/extra-deps.sh index 3bd6d1d03..6446b573d 100644 --- a/t/extra-deps.sh +++ b/t/extra-deps.sh @@ -78,8 +78,7 @@ $AUTOCONF : >foodep : >foodep2 : >bardep -$MAKE >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O grep 'making libfoodep' stdout rm -f foodep @@ -43,8 +43,7 @@ $MAKE distcheck mkdir -p 12345678 && cd 12345678 && touch x || exit 1 done) || skip_ "failed to create deeper directory hierarchy" -$MAKE dist 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E -e FAIL dist grep 'filenames are too long' stderr test 2 -eq $(grep -c 12345678 stderr) diff --git a/t/fn99subdir.sh b/t/fn99subdir.sh index 9ef09eff4..7b11db3db 100644 --- a/t/fn99subdir.sh +++ b/t/fn99subdir.sh @@ -73,8 +73,7 @@ for i in 1 2 3 4 5 6 7 8 9; do mkdir -p 12345678 && cd 12345678 && touch x || exit 1 done) || skip_ "failed to create deeper directory hierarchy" -$MAKE dist 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E -e FAIL dist grep 'filenames are too long' stderr test 1 -eq $(grep -c 12345678 stderr) diff --git a/t/fort2.sh b/t/fort2.sh index 9e87b5c5e..dc0fd9acc 100644 --- a/t/fort2.sh +++ b/t/fort2.sh @@ -66,10 +66,8 @@ $AUTOCONF touch hello.f90 foo.f95 sub/bar.f95 hi.f03 sub/howdy.f03 greets.f08 \ sub/bonjour.f08 bye.f95 sub/baz.f90 -$MAKE -n \ +run_make -O -- -n \ FCFLAGS_f90=--@90 FCFLAGS_f95=--@95 FCFLAGS_f03=--@03 FCFLAGS_f08=--@08 \ - > stdout || { cat stdout; exit 1; } -cat stdout # To make it easier to have stricter grepping below. $PERL -e ' undef $/; diff --git a/t/gnits2.sh b/t/gnits2.sh index 488955d2b..4ed9fd261 100644 --- a/t/gnits2.sh +++ b/t/gnits2.sh @@ -107,8 +107,7 @@ cd build ../configure "--prefix=$(pwd)/../inst-dir" --program-prefix=p $MAKE all $MAKE test-install -$MAKE -k installcheck 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E -e FAIL -- installcheck -k $MAKE grep-stderr : diff --git a/t/gnits3.sh b/t/gnits3.sh index 263e4b455..fa7f6a38b 100644 --- a/t/gnits3.sh +++ b/t/gnits3.sh @@ -87,8 +87,7 @@ cd build $MAKE $MAKE install $MAKE installcheck && exit 1 -$MAKE -k installcheck 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E -e FAIL -- installcheck -k $MAKE grep-stderr # Make sure there is no more error when all targets are exempted. diff --git a/t/install-info-dir.sh b/t/install-info-dir.sh index 8bb740161..b16824f42 100644 --- a/t/install-info-dir.sh +++ b/t/install-info-dir.sh @@ -118,8 +118,7 @@ echo error from install-info >&2 exit 127 END chmod a+x bin/install-info -$MAKE install-info >output 2>&1 || { cat output; exit 1; } -cat output +run_make -M install-info test -f $instdir/info/foo.info test ! -e $instdir/info/dir grep 'error from install-info' output && exit 1 diff --git a/t/instdir-java.sh b/t/instdir-java.sh index 547ec5f7c..1356f2437 100644 --- a/t/instdir-java.sh +++ b/t/instdir-java.sh @@ -45,16 +45,7 @@ cd build ../configure --prefix="$instdir" $MAKE -nukedirs='javadir=' - -run_make $nukedirs install -test ! -e "$instdir" -run_make $nukedirs install DESTDIR="$destdir" -test ! -e "$instdir" -test ! -e "$destdir" -run_make $nukedirs uninstall > stdout || { cat stdout; exit 1; } -cat stdout -grep 'rm -f' stdout && exit 1 -run_make $nukedirs uninstall DESTDIR="$destdir" +nulldirs='javadir=' +null_install : diff --git a/t/instdir-lisp.sh b/t/instdir-lisp.sh index 97605571c..b37e6fe8c 100644 --- a/t/instdir-lisp.sh +++ b/t/instdir-lisp.sh @@ -42,16 +42,7 @@ cd build ../configure --prefix="$instdir" $MAKE -nukedirs='lispdir=' - -run_make $nukedirs install -test ! -e "$instdir" -run_make $nukedirs install DESTDIR="$destdir" -test ! -e "$instdir" -test ! -e "$destdir" -run_make $nukedirs uninstall > stdout || { cat stdout; exit 1; } -cat stdout -grep 'rm -f' stdout && exit 1 -run_make $nukedirs uninstall DESTDIR="$destdir" +nulldirs='lispdir=' +null_install : diff --git a/t/instdir-ltlib.sh b/t/instdir-ltlib.sh index 975a25d87..8fad5f97d 100644 --- a/t/instdir-ltlib.sh +++ b/t/instdir-ltlib.sh @@ -66,22 +66,7 @@ cd build am_cv_python_pythondir="$instdir/python" \ am_cv_python_pyexecdir="$instdir/pyexec" -nukedirs='bindir= libdir= pyexecdir=' - -run_make $nukedirs install -test ! -e "$instdir" -run_make $nukedirs install DESTDIR="$destdir" -test ! -e "$instdir" -test ! -e "$destdir" -run_make $nukedirs uninstall > stdout \ - || { cat stdout; exit 1; } -cat stdout -# Creative quoting below to please maintainer-check. -grep 'rm'' ' stdout && exit 1 -run_make $nukedirs uninstall DESTDIR="$destdir" > stdout \ - || { cat stdout; exit 1; } -cat stdout -# Creative quoting below to please maintainer-check. -grep 'rm'' ' stdout && exit 1 +nulldirs='bindir= libdir= pyexecdir=' +null_install : diff --git a/t/instdir-no-empty.sh b/t/instdir-no-empty.sh index 03e18623d..4c311e575 100644 --- a/t/instdir-no-empty.sh +++ b/t/instdir-no-empty.sh @@ -111,8 +111,9 @@ $MAKE uninstall doinst bin_SCRIPTS=foo.sh test -f inst/bin/foo.sh -./configure -doinst DESTDIR="$cwd/dest" +# Explicitly pass prefix to avoid spurious influences from +# global config.site scripts. +./configure --prefix="/usr/local" test ! -e dest || { find dest; exit 1; } $MAKE uninstall doinst DESTDIR="$cwd/dest" bin_SCRIPTS=foo.sh diff --git a/t/instdir-prog.sh b/t/instdir-prog.sh index 99b2d2bf6..77961eca2 100644 --- a/t/instdir-prog.sh +++ b/t/instdir-prog.sh @@ -65,19 +65,7 @@ cd build am_cv_python_pythondir="$instdir/python" \ am_cv_python_pyexecdir="$instdir/pyexec" -nukedirs='bindir= libdir= pyexecdir=' - -run_make $nukedirs install -test ! -e "$instdir" -run_make $nukedirs install DESTDIR="$destdir" -test ! -e "$instdir" -test ! -e "$destdir" -run_make $nukedirs uninstall > stdout \ - || { cat stdout; exit 1; } -cat stdout -# Creative quoting below to please maintainer-check. -grep 'rm'' ' stdout && exit 1 -run_make $nukedirs uninstall DESTDIR="$destdir" > stdout \ - || { cat stdout; exit 1; } +nulldirs='bindir= libdir= pyexecdir=' +null_install : diff --git a/t/instdir-python.sh b/t/instdir-python.sh index e431a0635..2bd4014ed 100644 --- a/t/instdir-python.sh +++ b/t/instdir-python.sh @@ -46,16 +46,7 @@ cd build ../configure --prefix="$instdir" $MAKE -nukedirs='pythondir=' - -run_make $nukedirs install -test ! -e "$instdir" -run_make $nukedirs install DESTDIR="$destdir" -test ! -e "$instdir" -test ! -e "$destdir" -run_make $nukedirs uninstall > stdout || { cat stdout; exit 1; } -cat stdout -grep 'rm -f' stdout && exit 1 -run_make $nukedirs uninstall DESTDIR="$destdir" +nulldirs='pythondir=' +null_install : diff --git a/t/instdir-texi.sh b/t/instdir-texi.sh index 5cdaddbef..6f30419f7 100644 --- a/t/instdir-texi.sh +++ b/t/instdir-texi.sh @@ -56,17 +56,7 @@ cd build $MAKE all dvi ps pdf html ls -l -nukedirs='infodir= htmldir= dvidir= psdir= pdfdir=' - -run_make $nukedirs install install-html install-dvi install-ps install-pdf -test ! -e "$instdir" -run_make $nukedirs install install-html install-dvi install-ps install-pdf \ - DESTDIR="$destdir" -test ! -e "$instdir" -test ! -e "$destdir" -run_make $nukedirs uninstall > stdout || { cat stdout; exit 1; } -cat stdout -grep 'rm -f' stdout && exit 1 -run_make $nukedirs uninstall DESTDIR="$destdir" +nulldirs='infodir= htmldir= dvidir= psdir= pdfdir=' +null_install --texi : diff --git a/t/instdir.sh b/t/instdir.sh index bd5915bc7..872f3dca7 100644 --- a/t/instdir.sh +++ b/t/instdir.sh @@ -55,16 +55,7 @@ cd build ../configure --prefix="$instdir" $MAKE -nukedirs='bindir= datadir= includedir= foodir= bardir= man1dir= man2dir=' - -run_make $nukedirs install -test ! -e "$instdir" -run_make $nukedirs install DESTDIR="$destdir" -test ! -e "$instdir" -test ! -e "$destdir" -run_make $nukedirs uninstall > stdout || { cat stdout; exit 1; } -cat stdout -grep 'rm -f' stdout && exit 1 -run_make $nukedirs uninstall DESTDIR="$destdir" +nulldirs='bindir= datadir= includedir= foodir= bardir= man1dir= man2dir=' +null_install : diff --git a/t/instdir2.sh b/t/instdir2.sh index 78a8acca0..184859193 100644 --- a/t/instdir2.sh +++ b/t/instdir2.sh @@ -77,16 +77,7 @@ cd build ../configure --prefix="$instdir" $MAKE -nukedirs='bindir= datadir= includedir= foodir= bardir= man1dir= man2dir=' - -run_make $nukedirs install -test ! -e "$instdir" -run_make $nukedirs install DESTDIR="$destdir" -test ! -e "$instdir" -test ! -e "$destdir" -run_make $nukedirs uninstall > stdout || { cat stdout; exit 1; } -cat stdout -grep 'rm -f' stdout && exit 1 -run_make $nukedirs uninstall DESTDIR="$destdir" +nulldirs='bindir= datadir= includedir= foodir= bardir= man1dir= man2dir=' +null_install : diff --git a/t/libtool7.sh b/t/libtool7.sh index 1718bcfc1..302a510b0 100644 --- a/t/libtool7.sh +++ b/t/libtool7.sh @@ -78,30 +78,20 @@ $AUTOCONF $AUTOMAKE --add-missing --copy ./configure "--prefix=$(pwd)/_inst" -env LIBTOOLFLAGS=--silent $MAKE print >output 2>&1 || { - cat output - exit 1 -} -cat output + +run_make -M print LIBTOOLFLAGS=--silent grep '1BEG: libmod1.la mod2.la :END1' output grep '2BEG: mod2.la :END2' output grep '3BEG: .*silent.*silent.* :END3' output test 2 -le $(grep mod2_la_LIBTOOLFLAGS Makefile | wc -l) + $MAKE -env LIBTOOLFLAGS=--silent $MAKE install >output 2>&1 || { - cat output - exit 1 -} -cat output +run_make -M install LIBTOOLFLAGS=--silent grep 'silent.*silent.*prg' output grep 'silent.*silent.*libmod1' output -env LIBTOOLFLAGS=--silent $MAKE uninstall >output 2>&1 || { - cat output - exit 1 -} -cat output +run_make -M uninstall LIBTOOLFLAGS=--silent grep 'silent.*silent.*libmod1' output : diff --git a/t/libtool9.sh b/t/libtool9.sh index 69bd72c08..411d2bbd9 100644 --- a/t/libtool9.sh +++ b/t/libtool9.sh @@ -84,15 +84,14 @@ $AUTOCONF $AUTOMAKE --add-missing --copy ./configure -run_make \ +run_make -M -- print \ LDFLAGS=ldflags \ AM_LDFLAGS=am_ldflags \ libmod1_la_LDFLAGS=lm1_la_ldflags \ CFLAGS=cflags \ AM_CFLAGS=am_cflags \ - prg2_CFLAGS=prg2_cflags \ - print >output 2>&1 || { cat output; exit 1; } -cat output + prg2_CFLAGS=prg2_cflags + grep '1BEG: libmod1.la mod2.la :END1' output grep '2BEG: mod2.la :END2' output grep '3BEG:.* am_cflags cflags .*lm1_la_ldflags ldflags.* :END3' output @@ -101,6 +100,7 @@ grep '4BEG: :END4' output grep '5BEG: :END5' output grep '6BEG:.* prg2_cflags cflags .*am_ldflags ldflags.* :END6' output grep '6BEG: .*am_cflags.* :END6' output && exit 1 + $MAKE : diff --git a/t/lisp7.sh b/t/lisp7.sh index da461ac9b..b58059bd2 100644 --- a/t/lisp7.sh +++ b/t/lisp7.sh @@ -37,9 +37,7 @@ $AUTOCONF $AUTOMAKE --add-missing ./configure -$MAKE >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O test ! -e am-one.elc test ! -e am-two.elc test ! -e am-three.elc diff --git a/t/lisp8.sh b/t/lisp8.sh index 9ede9eed6..3ea15c548 100644 --- a/t/lisp8.sh +++ b/t/lisp8.sh @@ -38,9 +38,10 @@ $AUTOMAKE --add-missing ./configure # Use append mode here to avoid dropping output. See automake bug#11413. +# TODO: port this to to run_make(), and rewrite this hunk to use that +# function ... : >stdout $MAKE -j >>stdout || { cat stdout; exit 1; } - cat stdout test -f am-one.elc @@ -50,10 +51,12 @@ test -f am-three.elc rm -f am-*.elc # Use append mode here to avoid dropping output. See automake bug#11413. +# TODO: port this to to run_make(), and rewrite this hunk to use that +# function ... : >stdout $MAKE -j >>stdout || { cat stdout; exit 1; } - cat stdout + test -f am-one.elc test -f am-two.elc test -f am-three.elc diff --git a/t/ltorder.sh b/t/ltorder.sh index c243ac78b..de87274f7 100644 --- a/t/ltorder.sh +++ b/t/ltorder.sh @@ -53,8 +53,7 @@ $AUTOMAKE --add-missing ./configure --prefix="$(pwd)/inst" $MAKE -$MAKE install 2>stderr || { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E install grep 'has not been installed' stderr && exit 1 $MAKE uninstall diff --git a/t/maken3.sh b/t/maken3.sh index a93e30e60..8bf40b205 100644 --- a/t/maken3.sh +++ b/t/maken3.sh @@ -125,8 +125,7 @@ check_targets () install-info install-html install-dvi install-pdf install-ps \ installcheck installdirs tags mostlyclean maintainer-clean do - $MAKE -n $target >stdout || { cat stdout; exit 1; } - cat stdout + run_make -O -- -n $target case $target in install-* | installdirs | tags ) ;; *) diff --git a/t/output7.sh b/t/output7.sh index 8ec74bc94..d8832db12 100644 --- a/t/output7.sh +++ b/t/output7.sh @@ -63,10 +63,9 @@ $ACLOCAL $AUTOCONF $AUTOMAKE ./configure -$MAKE >output -cat output -grep in--mk output -grep in--sub output -grep at--toplevel output +run_make -O +grep in--mk stdout +grep in--sub stdout +grep at--toplevel stdout $MAKE distcheck diff --git a/t/parallel-tests-basics.sh b/t/parallel-tests-basics.sh index 036d5e5c6..ac361963d 100644 --- a/t/parallel-tests-basics.sh +++ b/t/parallel-tests-basics.sh @@ -58,8 +58,7 @@ $AUTOMAKE -a ./configure -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=3 pass=1 fail=1 skip=0 xfail=0 xpass=0 error=1 test -f test-suite.log cat test-suite.log @@ -81,8 +80,7 @@ test ! -e test-suite.log # Note that this usage has a problem: the summary will only # take bar.log into account, because the $(TEST_SUITE_LOG) rule # does not "see" baz.log. Hmm. -run_make TESTS='bar.test' check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL TESTS='bar.test' check grep '^FAIL: baz\.test$' stdout grep '^ERROR: bar\.test$' stdout @@ -97,8 +95,7 @@ test -f test-suite.log # Note that the previous test and this one taken together expose the timing # issue that requires the check-TESTS rule to always remove TEST_SUITE_LOG # before running the tests lazily. -run_make check AM_LAZY_CHECK=yes > stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check AM_LAZY_CHECK=yes test -f foo.log grep '^PASS: foo\.test$' stdout grep bar.test stdout && exit 1 @@ -109,8 +106,7 @@ grep '^# ERROR: *1$' stdout # Now, explicitly retry with all test logs already updated, and ensure # that the summary is still displayed. -run_make check AM_LAZY_CHECK=yes > stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check AM_LAZY_CHECK=yes grep foo.test stdout && exit 1 grep bar.test stdout && exit 1 grep baz.test stdout && exit 1 @@ -119,15 +115,13 @@ grep '^# FAIL: *1$' stdout grep '^# ERROR: *1$' stdout $MAKE clean -run_make check TESTS=baz > stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check TESTS=baz grep foo.test stdout && exit 1 grep bar.test stdout && exit 1 grep baz.test stdout $MAKE clean -run_make check TESTS=baz.test > stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL TESTS=baz.test check grep foo.test stdout && exit 1 grep bar.test stdout && exit 1 grep baz.test stdout diff --git a/t/parallel-tests-concurrency.sh b/t/parallel-tests-concurrency.sh index 30b05e840..235b9ee8a 100644 --- a/t/parallel-tests-concurrency.sh +++ b/t/parallel-tests-concurrency.sh @@ -17,6 +17,9 @@ # Check parallel-tests features: # - concurrent parallel execution +# FIXME: we should factorize the code to determine how to run +# make in parallel out in am-test-lib.sh ... + . test-init.sh case $MAKE in @@ -69,6 +72,8 @@ $MAKE -j1 check & cd ../parallel $sleep # Use append mode here to avoid dropping output. See automake bug#11413. +# TODO: port this to to run_make(), and rewrite this hunk to use that +# function ... : > stdout $MAKE -j4 check >> stdout cd .. diff --git a/t/parallel-tests-console-output.sh b/t/parallel-tests-console-output.sh index 2b8cebf9b..ea3c15bb6 100644 --- a/t/parallel-tests-console-output.sh +++ b/t/parallel-tests-console-output.sh @@ -92,8 +92,7 @@ for vpath in : false; do srcdir=. fi $srcdir/configure - $MAKE check >stdout && { cat stdout; exit 1; } - cat stdout + run_make -O -e FAIL check LC_ALL=C grep '^[A-Z][A-Z]*:' stdout > got cat got diff $srcdir/exp got diff --git a/t/parallel-tests-dry-run-2.sh b/t/parallel-tests-dry-run-2.sh index 087e22f80..efb96e1a1 100644 --- a/t/parallel-tests-dry-run-2.sh +++ b/t/parallel-tests-dry-run-2.sh @@ -37,8 +37,7 @@ $AUTOCONF make_n_ () { st=0 - $MAKE -n "$@" >output 2>&1 || { cat output; ls -l; exit 1; } - cat output + run_make -M -- -n "$@" || { ls -l; exit 1; } # Look out for possible errors from common tools used by recipes. $EGREP -i ' (exist|permission|denied|no .*(such|file))' output && exit 1 $EGREP '(mv|cp|rm|cat|grep|sed|awk): ' output && exit 1 diff --git a/t/parallel-tests-empty.sh b/t/parallel-tests-empty.sh index faa7c4a5d..8801027ab 100644 --- a/t/parallel-tests-empty.sh +++ b/t/parallel-tests-empty.sh @@ -55,8 +55,7 @@ $AUTOMAKE -a no_test_run () { - $MAKE check ${1+"$@"} >stdout || { cat stdout; exit 1; } - cat stdout + run_make -O -- check ${1+"$@"} ls *.log | grep -v '^test-suite\.log$' | grep . && exit 1 grep '^# TOTAL: *0$' test-suite.log || exit 1 for x in TOTAL PASS FAIL XPASS FAIL SKIP ERROR; do diff --git a/t/parallel-tests-exit-statuses.sh b/t/parallel-tests-exit-statuses.sh index 8612004d6..54181e2cf 100644 --- a/t/parallel-tests-exit-statuses.sh +++ b/t/parallel-tests-exit-statuses.sh @@ -67,20 +67,17 @@ $AUTOMAKE -a sed 's/^FAIL:/XFAIL:/' exp-0 | LC_ALL=C sort > exp-1 sed '/^ERROR:/d' exp-1 > exp-2 -sort exp-0 -sort exp-1 -sort exp-2 - ./configure mk_ () { n=$1; shift unset am_make_rc_got - run_make -e IGNORE ${1+"$@"} check > stdout - cat stdout + run_make -e IGNORE -O -- ${1+"$@"} check cat test-suite.log LC_ALL=C grep '^[A-Z][A-Z]*:' stdout | LC_ALL=C sort > got-$n + cat exp-$n + cat got-$n diff exp-$n got-$n } diff --git a/t/parallel-tests-extra-programs.sh b/t/parallel-tests-extra-programs.sh index 8f3384225..1cfcf0088 100644 --- a/t/parallel-tests-extra-programs.sh +++ b/t/parallel-tests-extra-programs.sh @@ -115,12 +115,9 @@ $AUTOMAKE -a # 'test-suite.log' file shouldn't be created (as it depends # on *all* the test logs). -st=0 -$MAKE -k check >stdout 2>stderr || st=$? -cat stdout -cat stderr >&2 +run_make -E -O -e IGNORE -- -k check ls -l -test $st -gt 0 +test $am_make_rc_got -gt 0 # Files that should have been created, with the expected content. cat bar.c @@ -150,8 +147,7 @@ $sleep echo 'int main (void) { return 0; }' > none.c -run_make -e IGNORE AM_LAZY_CHECK=yes check >stdout -cat stdout +run_make -O -e IGNORE AM_LAZY_CHECK=yes check ls -l # For debugging. test $am_make_rc_got -eq 0 || exit 1 diff --git a/t/parallel-tests-fd-redirect-exeext.sh b/t/parallel-tests-fd-redirect-exeext.sh index 03bb225bb..6e7fae2d0 100644 --- a/t/parallel-tests-fd-redirect-exeext.sh +++ b/t/parallel-tests-fd-redirect-exeext.sh @@ -97,12 +97,10 @@ else fatal_ "unexpected error in ./configure" fi -st=0 -$MAKE check >stdout || st=1 -cat stdout +run_make -O -e IGNORE check cat baz.log cat qux.log -test $st -eq 0 +test $am_make_rc_got -eq 0 grep "^ bazbazbaz$" stdout grep "^ quxquxqux$" stdout $EGREP '(bazbazbaz|quxquxqux)' *.log && exit 1 diff --git a/t/parallel-tests-fd-redirect.sh b/t/parallel-tests-fd-redirect.sh index 80f08d95b..cab27014a 100644 --- a/t/parallel-tests-fd-redirect.sh +++ b/t/parallel-tests-fd-redirect.sh @@ -51,11 +51,10 @@ chmod a+x foo.sh bar ./configure -st=0; $MAKE check >stdout || st=1 -cat stdout +run_make -O -e IGNORE check cat foo.log cat bar.log -test $st -eq 0 +test $am_make_rc_got -eq 0 grep "^ foofoofoo$" stdout grep "^ barbarbar$" stdout $EGREP '(foofoofoo|barbarbar)' *.log && exit 1 diff --git a/t/parallel-tests-fork-bomb.sh b/t/parallel-tests-fork-bomb.sh index b36289afb..cc5c91216 100644 --- a/t/parallel-tests-fork-bomb.sh +++ b/t/parallel-tests-fork-bomb.sh @@ -60,14 +60,12 @@ $AUTOMAKE -a do_check () { - st=0 log=$1; shift - run_make "$@" check >output 2>&1 || st=$? - cat output + run_make -M -e IGNORE -- "$@" check $FGREP '::OOPS::' output && exit 1 # Possible infinite recursion. grep "[Cc]ircular.*dependency" output | $FGREP "$log" grep "$log:.*depends on itself" output - test $st -gt 0 + test $am_make_rc_got -gt 0 } : > test-suite.test diff --git a/t/parallel-tests-recheck-depends-on-all.sh b/t/parallel-tests-recheck-depends-on-all.sh index e2c69162d..544e2de6a 100644 --- a/t/parallel-tests-recheck-depends-on-all.sh +++ b/t/parallel-tests-recheck-depends-on-all.sh @@ -63,8 +63,7 @@ $AUTOCONF $AUTOMAKE -a ./configure -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=3 pass=1 fail=2 skip=0 xfail=0 xpass=0 error=0 test ! -e status @@ -79,14 +78,12 @@ int main (void) } END -$MAKE recheck >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O recheck count_test_results total=2 pass=2 fail=0 skip=0 xfail=0 xpass=0 error=0 grep '^PASS: b\.test$' stdout grep '^PASS: c\.test$' stdout -$MAKE recheck >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O recheck count_test_results total=0 pass=0 fail=0 skip=0 xfail=0 xpass=0 error=0 : diff --git a/t/parallel-tests-recheck-pr11791.sh b/t/parallel-tests-recheck-pr11791.sh index 3e0495a54..139bc56db 100644 --- a/t/parallel-tests-recheck-pr11791.sh +++ b/t/parallel-tests-recheck-pr11791.sh @@ -38,20 +38,17 @@ $AUTOMAKE -a ./configure -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=1 pass=0 fail=1 xpass=0 xfail=0 skip=0 error=0 -$MAKE -k recheck >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL -- recheck --keep-going count_test_results total=1 pass=0 fail=1 xpass=0 xfail=0 skip=0 error=0 # Introduce an error in foo.c, that should cause a compilation failure. $sleep echo choke me >> foo.c -$MAKE recheck >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL recheck # We don't get a change to run the testsuite. $EGREP '(X?PASS|X?FAIL|SKIP|ERROR):' stdout && exit 1 # These shouldn't be removed, otherwise the next make recheck will do @@ -59,8 +56,7 @@ $EGREP '(X?PASS|X?FAIL|SKIP|ERROR):' stdout && exit 1 test -f foo.log test -f foo.trs -$MAKE -k recheck >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL -- recheck -k # We don't get a change to run the testsuite. $EGREP '(X?PASS|X?FAIL|SKIP|ERROR):' stdout && exit 1 test -f foo.log @@ -70,14 +66,12 @@ test -f foo.trs $sleep echo 'int main (void) { return 0; }' > foo.c -$MAKE recheck >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O recheck count_test_results total=1 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=0 test -f foo.log test -f foo.trs -$MAKE recheck >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O recheck count_test_results total=0 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=0 test -f foo.log test -f foo.trs diff --git a/t/parallel-tests-recheck.sh b/t/parallel-tests-recheck.sh index f70bbc91e..47e100a68 100644 --- a/t/parallel-tests-recheck.sh +++ b/t/parallel-tests-recheck.sh @@ -55,15 +55,13 @@ $AUTOCONF $AUTOMAKE -a ./configure -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=3 pass=1 fail=1 skip=0 xfail=0 xpass=0 error=1 # Running this two times in a row should produce the same results the # second time. for i in 1 2; do - $MAKE recheck >stdout && { cat stdout; exit 1; } - cat stdout + run_make -O -e FAIL recheck count_test_results total=2 pass=0 fail=1 skip=0 xfail=0 xpass=0 error=1 grep 'foo\.test' stdout && exit 1 grep '^ERROR: bar\.test$' stdout diff --git a/t/parallel-tests-reset-term.sh b/t/parallel-tests-reset-term.sh index fb737bc50..187a503be 100644 --- a/t/parallel-tests-reset-term.sh +++ b/t/parallel-tests-reset-term.sh @@ -41,15 +41,11 @@ chmod a+x foobar mkcheck () { - if $MAKE "$@" check > stdout; then - rc=0 - else - rc=1 - fi + run_make -O -e IGNORE "$@" check cat stdout cat foobar.log cat test-suite.log - return $rc + return $am_make_rc_got } $ACLOCAL diff --git a/t/pluseq10.sh b/t/pluseq10.sh index e283ca7fa..c80d23a38 100644 --- a/t/pluseq10.sh +++ b/t/pluseq10.sh @@ -48,8 +48,7 @@ $AUTOCONF $AUTOMAKE ./configure -$MAKE print >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O print $FGREP 'BEG: 0.h a0.h a1.h a2.h a3.h :END' stdout : diff --git a/t/pr300-ltlib.sh b/t/pr300-ltlib.sh index b3d759f4d..3994e36e8 100644 --- a/t/pr300-ltlib.sh +++ b/t/pr300-ltlib.sh @@ -53,8 +53,7 @@ cwd=$(pwd) || fatal_ "getting current working directory" # A rule in the Makefile should create subdir. test ! -e subdir -$MAKE >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O test -d subdir grep 'liba.la .*-rpath .*lib' stdout @@ -64,8 +63,7 @@ grep 'libb.la .*-rpath .*lib/subdir' stdout test -f subdir/liba.la test -f subdir/libb.la -$MAKE install 2>stderr || { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E install grep 'remember.*--finish' stderr && exit 1 test -f inst/lib/liba.la diff --git a/t/preproc-demo.sh b/t/preproc-demo.sh index 4c1b2d9dd..1f29057b5 100644 --- a/t/preproc-demo.sh +++ b/t/preproc-demo.sh @@ -213,8 +213,7 @@ test -f build-aux/compile $MAKE -VERBOSE=x $MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check VERBOSE=x cat tests/built.log cat tests/hello.log cat tests/goodbye.log diff --git a/t/remake-aclocal-version-mismatch.sh b/t/remake-aclocal-version-mismatch.sh index cb4086445..6da7bad5b 100644 --- a/t/remake-aclocal-version-mismatch.sh +++ b/t/remake-aclocal-version-mismatch.sh @@ -34,13 +34,11 @@ cmp aclocal.m4 aclocal.tmp && exit 1 mv aclocal.tmp aclocal.m4 -$MAKE 2>stderr || { cat cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E grep 'You have another version of autoconf' stderr grep 'aclocal.m4:.*this file was generated for' stderr -$MAKE 2>stderr || { cat cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E grep 'You have another version of autoconf' stderr && exit 1 grep 'aclocal.m4:.*this file was generated for' stderr && exit 1 diff --git a/t/remake-subdir3.sh b/t/remake-subdir3.sh index f1dbc54c6..eb2851dd8 100644 --- a/t/remake-subdir3.sh +++ b/t/remake-subdir3.sh @@ -37,8 +37,7 @@ $MAKE do_check () { - $MAKE >stdout || { cat stdout; exit 1; } - cat stdout + run_make -O test $(grep -c "/missing " stdout) -eq 1 } diff --git a/t/self-check-shell-no-trail-bslash.sh b/t/self-check-shell-no-trail-bslash.sh index 42738d91b..423730307 100644 --- a/t/self-check-shell-no-trail-bslash.sh +++ b/t/self-check-shell-no-trail-bslash.sh @@ -36,8 +36,7 @@ test "$($SHELL -c 'echo is o\k')" = "is ok" $MAKE good -$MAKE bad SHELL="$SHELL" 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E -e FAIL bad SHELL="$SHELL" $FGREP "recipe ends with backslash character" stderr : diff --git a/t/silent-c.sh b/t/silent-c.sh index 77c72c44f..47bf5c295 100644 --- a/t/silent-c.sh +++ b/t/silent-c.sh @@ -49,8 +49,7 @@ for config_args in \ ; do ./configure --enable-silent-rules $config_args - $MAKE >stdout || { cat stdout; exit 1; } - cat stdout + run_make -O $EGREP ' (-c|-o)|(mv|mkdir) ' stdout && exit 1 grep ' CC *foo\.o' stdout grep ' CC *bar-bar\.o' stdout @@ -62,8 +61,7 @@ for config_args in \ grep ' CCLD *sub/bla' stdout $MAKE clean - $MAKE V=1 >stdout || { cat stdout; exit 1; } - cat stdout + run_make -O V=1 grep ' -c' stdout grep ' -o foo' stdout grep ' -o sub/baz' stdout diff --git a/t/silent-custom.sh b/t/silent-custom.sh index fc117df78..2604c428f 100644 --- a/t/silent-custom.sh +++ b/t/silent-custom.sh @@ -68,8 +68,7 @@ do_check () esac shift $MAKE clean - $MAKE ${1+"$@"} >output 2>&1 || { cat output; exit 1; } - sed 's/^/ /' output + run_make -M -- ${1+"$@"} if $silent; then $FGREP 'cp ' output && exit 1 $FGREP 'generate-header' output && exit 1 diff --git a/t/silent-cxx.sh b/t/silent-cxx.sh index c2a87040f..2aa0ac672 100644 --- a/t/silent-cxx.sh +++ b/t/silent-cxx.sh @@ -63,9 +63,10 @@ $FGREP am_cv_CXX_dependencies_compiler_type configure for config_args in \ --enable-dependency-tracking --disable-dependency-tracking do + ./configure $config_args --enable-silent-rules - $MAKE >stdout || { cat stdout; exit 1; } - cat stdout + + run_make -O $EGREP ' (-c|-o)' stdout && exit 1 grep 'mv ' stdout && exit 1 @@ -86,8 +87,7 @@ do # Ensure a clean rebuild. $MAKE clean - $MAKE V=1 >stdout || { cat stdout; exit 1; } - cat stdout + run_make -O V=1 grep ' -c ' stdout grep ' -o quux' stdout diff --git a/t/silent-f77.sh b/t/silent-f77.sh index c0447ede1..84cd95089 100644 --- a/t/silent-f77.sh +++ b/t/silent-f77.sh @@ -50,8 +50,7 @@ $AUTOMAKE --add-missing $AUTOCONF ./configure --enable-silent-rules -$MAKE >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O # Avoid spurious failures with SunStudio Fortran compilers. sed '/^NOTICE:/d' stdout > t mv -f t stdout @@ -74,8 +73,7 @@ $EGREP '(FC|FCLD) ' stdout && exit 1 # Ensure a clean rebuild. $MAKE clean -$MAKE V=1 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O V=1 grep ' -c ' stdout grep ' -o ' stdout diff --git a/t/silent-f90.sh b/t/silent-f90.sh index b40b47af6..f920d6330 100644 --- a/t/silent-f90.sh +++ b/t/silent-f90.sh @@ -50,8 +50,7 @@ $AUTOMAKE --add-missing $AUTOCONF ./configure --enable-silent-rules -$MAKE >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O # Avoid spurious failures with SunStudio Fortran compilers. sed '/^NOTICE:/d' stdout > t mv -f t stdout @@ -74,8 +73,7 @@ $EGREP '(F77|F77LD) ' stdout && exit 1 # Ensure a clean rebuild. $MAKE clean -$MAKE V=1 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O V=1 grep ' -c ' stdout grep ' -o ' stdout diff --git a/t/silent-gen.sh b/t/silent-gen.sh index 930dc5851..ac49f2b35 100644 --- a/t/silent-gen.sh +++ b/t/silent-gen.sh @@ -42,22 +42,19 @@ $AUTOCONF # Silent rules are disabled by default, since we haven't called # "AM_SILENT_RULES([yes])" explicitly. ./configure -$MAKE >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O grep 'GEN ' stdout && exit 1 grep 'cp ' stdout grep 'echo ' stdout $MAKE clean -$MAKE V=1 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O V=1 grep 'GEN ' stdout && exit 1 grep 'cp ' stdout grep 'echo ' stdout $MAKE clean -$MAKE V=0 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O V=0 grep 'GEN .*foo' stdout grep 'cp ' stdout && exit 1 grep 'echo ' stdout && exit 1 @@ -65,22 +62,19 @@ grep 'echo ' stdout && exit 1 $MAKE distclean ./configure --enable-silent-rules -$MAKE >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O grep 'GEN .*foo' stdout grep 'cp ' stdout && exit 1 grep 'echo ' stdout && exit 1 $MAKE clean -$MAKE V=0 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O V=0 grep 'GEN .*foo' stdout grep 'cp ' stdout && exit 1 grep 'echo ' stdout && exit 1 $MAKE clean -$MAKE V=1 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O V=1 grep 'GEN ' stdout && exit 1 grep 'cp ' stdout grep 'echo ' stdout diff --git a/t/silent-lex.sh b/t/silent-lex.sh index 20d4c7caa..d17abefa2 100644 --- a/t/silent-lex.sh +++ b/t/silent-lex.sh @@ -56,8 +56,7 @@ $FGREP 'foo2-foo.c' Makefile.in || exit 99 ./configure --enable-silent-rules -$MAKE >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O $EGREP ' (-c|-o)' stdout && exit 1 $EGREP '(mv|ylwrap) ' stdout && exit 1 @@ -72,8 +71,7 @@ grep 'CCLD .*foo2' stdout # different set of rules. $MAKE clean -$MAKE >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O $EGREP ' (-c|-o)' stdout && exit 1 $EGREP '(mv|ylwrap) ' stdout && exit 1 @@ -87,8 +85,7 @@ grep 'CCLD .*foo2' stdout $MAKE clean rm -f *foo.c -$MAKE V=1 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O V=1 grep ' -c ' stdout grep ' -o ' stdout @@ -101,8 +98,7 @@ $EGREP '(LEX|CC|CCLD) ' stdout && exit 1 # different set of rules. $MAKE clean -$MAKE V=1 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O V=1 # Don't look for ylwrap, as probably lex hasn't been re-run. grep ' -c ' stdout diff --git a/t/silent-lt.sh b/t/silent-lt.sh index 3d3023edc..78664c0a6 100644 --- a/t/silent-lt.sh +++ b/t/silent-lt.sh @@ -54,8 +54,7 @@ for config_args in \ ./configure --enable-silent-rules $config_args - $MAKE >stdout || { cat stdout; exit 1; } - cat stdout + run_make -O $EGREP ' (-c|-o)|(mv|mkdir) ' stdout && exit 1 grep ' CC *libfoo\.lo' stdout grep ' CC *libbar_la-libbar\.lo' stdout @@ -67,8 +66,7 @@ for config_args in \ grep ' CCLD *sub/libbla\.la' stdout $MAKE clean - $MAKE V=1 >stdout || { cat stdout; exit 1; } - cat stdout + run_make -O V=1 grep ' -c' stdout grep ' -o libfoo' stdout grep ' -o sub/libbaz' stdout diff --git a/t/silent-many-languages.sh b/t/silent-many-languages.sh index f3c11d79e..03be42f87 100644 --- a/t/silent-many-languages.sh +++ b/t/silent-many-languages.sh @@ -30,8 +30,7 @@ do_and_check_silent_build () *) rebuild=false;; esac - $MAKE >stdout || { cat stdout; exit 1; } - cat stdout + run_make -O # Avoid spurious failures with SunStudio Fortran compilers. sed '/^NOTICE:/d' stdout > t mv -f t stdout @@ -67,8 +66,7 @@ do_and_check_verbose_build () *) rebuild=false;; esac - $MAKE V=1 >stdout || { cat stdout; exit 1; } - cat stdout + run_make -O V=1 grep ' -c ' stdout grep ' -o ' stdout diff --git a/t/silent-texi.sh b/t/silent-texi.sh index 810fb04a6..969e58cc5 100644 --- a/t/silent-texi.sh +++ b/t/silent-texi.sh @@ -47,11 +47,7 @@ $AUTOCONF ./configure --disable-silent-rules # Silent mode output. -st=0 -$MAKE V=0 dvi html info ps pdf >stdout 2>stderr || st=$? -cat stdout -cat stderr >&2 -test $st -eq 0 +run_make -O -E -- V=0 dvi html info ps pdf grep '^ DVIPS foo\.ps$' stdout grep '^ MAKEINFO foo\.html$' stdout grep '^ MAKEINFO foo\.info$' stdout @@ -71,8 +67,7 @@ $EGREP '(zardoz|foo)\.log|3\.14|Copyright|This is|[Oo]utput ' \ # Verbose mode output. $MAKE clean || exit 1 -$MAKE V=1 dvi html info ps pdf >output 2>&1 || { cat output; exit 1; } -cat output +run_make -M V=1 dvi html info ps pdf $EGREP '(DVIPS|MAKEINFO|TEXI2(PDF|DVI)) ' output && exit 1 # Verbose output from TeX. grep '[Oo]utput .*foo\.pdf' output diff --git a/t/silent-yacc-headers.sh b/t/silent-yacc-headers.sh index 87a8ec451..837b10e9f 100644 --- a/t/silent-yacc-headers.sh +++ b/t/silent-yacc-headers.sh @@ -60,8 +60,7 @@ $FGREP '$(bar_YFLAGS)' Makefile.in ./configure --enable-silent-rules -$MAKE >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O $EGREP ' (-c|-d|-o)' stdout && exit 1 $EGREP '(mv|ylwrap) ' stdout && exit 1 @@ -78,8 +77,7 @@ grep 'CCLD *bar' stdout # Check recovering from header removal. rm -f parse.h bar-parse.h -$MAKE parse.h bar-parse.h >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O parse.h bar-parse.h $EGREP ' (-c|-d|-o)' stdout && exit 1 $EGREP '(mv|ylwrap) ' stdout && exit 1 @@ -94,8 +92,7 @@ grep 'updating *bar-parse\.h' stdout # different set of rules. $MAKE clean -$MAKE >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O $EGREP ' (-c|-d|-o)' stdout && exit 1 $EGREP '(mv|ylwrap) ' stdout && exit 1 @@ -109,8 +106,7 @@ grep 'CCLD *bar' stdout # Check recovering from header removal. rm -f parse.h bar-parse.h -$MAKE parse.h bar-parse.h >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O parse.h bar-parse.h $EGREP ' (-c|-d|-o)' stdout && exit 1 $EGREP '(mv|ylwrap) ' stdout && exit 1 @@ -125,8 +121,7 @@ $MAKE maintainer-clean ./configure --enable-silent-rules -$MAKE V=1 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O V=1 grep ' -c ' stdout grep ' -o ' stdout @@ -137,8 +132,7 @@ $EGREP '(YACC|CC|CCLD) ' stdout && exit 1 # Check recovering from header removal. rm -f parse.h bar-parse.h -$MAKE V=1 parse.h bar-parse.h >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O V=1 parse.h bar-parse.h grep ' -d ' stdout grep 'ylwrap ' stdout @@ -150,8 +144,7 @@ grep 'YACC' stdout && exit 1 # different set of rules. $MAKE clean -$MAKE V=1 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O V=1 # Don't look for ylwrap, as probably lex hasn't been re-run. grep ' -c ' stdout @@ -161,8 +154,7 @@ $EGREP '(YACC|CC|CCLD) ' stdout && exit 1 # Check recovering from header removal. rm -f parse.h bar-parse.h -$MAKE V=1 parse.h bar-parse.h >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O V=1 parse.h bar-parse.h grep ' -d ' stdout grep 'ylwrap ' stdout diff --git a/t/silent-yacc.sh b/t/silent-yacc.sh index eba36b54f..c62b185c2 100644 --- a/t/silent-yacc.sh +++ b/t/silent-yacc.sh @@ -54,8 +54,7 @@ $FGREP 'foo2-foo.c' Makefile.in || exit 99 ./configure --enable-silent-rules -$MAKE >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O $EGREP ' (-c|-o)' stdout && exit 1 $EGREP '(mv|ylwrap) ' stdout && exit 1 @@ -70,8 +69,7 @@ grep 'CCLD .*foo2' stdout # different set of rules. $MAKE clean -$MAKE >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O $EGREP ' (-c|-o)' stdout && exit 1 $EGREP '(mv|ylwrap) ' stdout && exit 1 @@ -85,8 +83,7 @@ grep 'CCLD .*foo2' stdout $MAKE clean rm -f *foo.[ch] -$MAKE V=1 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O V=1 grep ' -c ' stdout grep ' -o ' stdout @@ -99,8 +96,7 @@ $EGREP '(YACC|CC|CCLD) ' stdout && exit 1 # different set of rules. $MAKE clean -$MAKE V=1 >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O V=1 # Don't look for ylwrap, as probably lex hasn't been re-run. grep ' -c ' stdout diff --git a/t/subobj9.sh b/t/subobj9.sh index e7932fe78..681ec8526 100644 --- a/t/subobj9.sh +++ b/t/subobj9.sh @@ -69,15 +69,13 @@ export AUTOCONF AUTOMAKE # Opportunistically check that --tag=CXX is used when supported. if ./libtool --help | grep tag=TAG; then - $MAKE print >stdout || { cat stdout; exit 1; } - cat stdout + run_make -O print grep 'BEG1: .*--tag=CXX.*--mode=compile.* :1END' stdout grep 'BEG2: .*--tag=CXX.*--mode=link.* :2END' stdout fi $MAKE -$MAKE distcheck >output 2>&1 || { cat output; exit 1; } -cat output +run_make -M distcheck # GNU Make used to complain that the Makefile contained two rules # for 'src/.dirstamp' and './/src/.dirstamp'. grep 'overriding commands' output && exit 1 diff --git a/t/tap-ambiguous-directive.sh b/t/tap-ambiguous-directive.sh index 6804e6742..500a4830d 100644 --- a/t/tap-ambiguous-directive.sh +++ b/t/tap-ambiguous-directive.sh @@ -32,9 +32,7 @@ ok 5 # SKIP SKIP not ok 6 # TODO TODO END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=6 pass=2 fail=2 xpass=0 xfail=1 skip=1 error=0 cat > exp << 'END' diff --git a/t/tap-autonumber.sh b/t/tap-autonumber.sh index f1820ce86..d89aa789f 100644 --- a/t/tap-autonumber.sh +++ b/t/tap-autonumber.sh @@ -44,8 +44,7 @@ not ok ok END -run_make TESTS=all.test check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL TESTS=all.test check count_test_results total=14 pass=6 fail=5 xpass=1 xfail=1 skip=1 error=0 cat > exp <<'END' diff --git a/t/tap-bad-prog.tap b/t/tap-bad-prog.tap index ed38bb492..0184c58b4 100644 --- a/t/tap-bad-prog.tap +++ b/t/tap-bad-prog.tap @@ -49,13 +49,8 @@ $AUTOMAKE -a ./configure -if $MAKE check >stdout; then - r='not ok' -else - r='ok' -fi -cat stdout -result_ "$r" '"make check" returns non-zero exit status' +command_ok_ '"make check" returns non-zero exit status' \ + run_make -O -e FAIL check # FIXME: maybe grep for stricter error messages in the next checks? diff --git a/t/tap-bailout-leading-space.sh b/t/tap-bailout-leading-space.sh index c84c61242..120ae0340 100644 --- a/t/tap-bailout-leading-space.sh +++ b/t/tap-bailout-leading-space.sh @@ -50,10 +50,7 @@ ERROR: b.test - Bail out! ERROR: c.test - Bail out! FUBAR! END -run_make TESTS='a.test b.test c.test' check >stdout \ - && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL TESTS='a.test b.test c.test' check count_test_results total=5 pass=1 fail=0 xpass=0 xfail=0 skip=1 error=3 LC_ALL=C sort exp > t diff --git a/t/tap-bailout-suppress-badexit.sh b/t/tap-bailout-suppress-badexit.sh index 1a10b8383..8f5fb15fd 100644 --- a/t/tap-bailout-suppress-badexit.sh +++ b/t/tap-bailout-suppress-badexit.sh @@ -54,10 +54,9 @@ END chmod a+x $tests -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=4 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=4 + for tst in $tests; do grep "^ERROR: $tst - Bail out!" stdout; done $EGREP "ERROR: .*(exit.*status|terminat.*signal)" stdout && exit 1 diff --git a/t/tap-bailout-suppress-later-diagnostic.sh b/t/tap-bailout-suppress-later-diagnostic.sh index 3045e1d35..730e461c4 100644 --- a/t/tap-bailout-suppress-later-diagnostic.sh +++ b/t/tap-bailout-suppress-later-diagnostic.sh @@ -32,11 +32,7 @@ Bail out! # not seen END -# Doing the sums above, we have: - -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=2 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=1 grep '# all.test: sanity check' stdout grep 'not seen' stdout && exit 1 diff --git a/t/tap-bailout-suppress-later-errors.sh b/t/tap-bailout-suppress-later-errors.sh index 7f602942c..365e8945a 100644 --- a/t/tap-bailout-suppress-later-errors.sh +++ b/t/tap-bailout-suppress-later-errors.sh @@ -52,10 +52,7 @@ ok 2 ok 3 END -run_make TESTS='foo.test bar.test baz.test' check >stdout \ - && { cat stdout; exit 1; } -cat stdout - +run_make -e FAIL -O TESTS='foo.test bar.test baz.test' check count_test_results total=5 pass=1 fail=0 xpass=0 xfail=0 skip=1 error=3 grep '^ERROR: foo\.test - Bail out!$' stdout diff --git a/t/tap-bailout.sh b/t/tap-bailout.sh index b6c0f56d1..94100f4c1 100644 --- a/t/tap-bailout.sh +++ b/t/tap-bailout.sh @@ -118,10 +118,7 @@ echo "ERROR: e.test - Bail out!" >> exp # Doing the sums above, we have: test_counts='total=12 pass=3 fail=1 xpass=1 xfail=1 skip=1 error=5' -run_make TESTS='a.test b.test c.test d.test e.test' check >stdout \ - && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL TESTS='a.test b.test c.test d.test e.test' check count_test_results $test_counts LC_ALL=C sort exp > t diff --git a/t/tap-basic.sh b/t/tap-basic.sh index 1276970e5..69cd9c8e4 100644 --- a/t/tap-basic.sh +++ b/t/tap-basic.sh @@ -87,9 +87,7 @@ $AUTOMAKE # Basilar usage and testsuite progress output. -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=20 pass=4 fail=4 xpass=4 xfail=4 skip=4 error=0 test -f success.log @@ -134,9 +132,7 @@ Bail out! ok 1 END -run_make check TESTS=bail.test >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check TESTS=bail.test count_test_results total=1 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=1 test ! -e success.log @@ -153,9 +149,7 @@ $FGREP 'success.test' stdout && exit 1 rm -f *.log *.test -run_make check TESTS=ok >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O check TESTS=ok count_test_results total=3 pass=1 fail=0 xpass=0 xfail=1 skip=1 error=0 test -f ok.test diff --git a/t/tap-color.sh b/t/tap-color.sh index 5f5107cf0..1782c0b61 100644 --- a/t/tap-color.sh +++ b/t/tap-color.sh @@ -129,13 +129,11 @@ test_no_color () # hence the "TERM=dumb" definition. AM_COLOR_TESTS=always; export AM_COLOR_TESTS -run_make TERM=dumb check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL TERM=dumb check test_color unset AM_COLOR_TESTS -run_make TERM=ansi check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL TERM=ansi check test_no_color : diff --git a/t/tap-deps.sh b/t/tap-deps.sh index 5aadd807b..381405e37 100644 --- a/t/tap-deps.sh +++ b/t/tap-deps.sh @@ -62,9 +62,7 @@ END chmod a+x *.test -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O check count_test_results total=5 pass=5 fail=0 xpass=0 xfail=0 skip=0 error=0 cat > exp << 'END' diff --git a/t/tap-diagnostic-custom.sh b/t/tap-diagnostic-custom.sh index 4cefead40..82b785870 100644 --- a/t/tap-diagnostic-custom.sh +++ b/t/tap-diagnostic-custom.sh @@ -81,13 +81,11 @@ $AUTOMAKE -a ./configure -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check count_test_results total=$i pass=$i fail=0 xpass=0 xfail=0 skip=0 error=0 cat later.mk >> Makefile -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check $FGREP 'blah blah' stdout && exit 1 : diff --git a/t/tap-diagnostic.sh b/t/tap-diagnostic.sh index f9bef7464..2e9ac8316 100644 --- a/t/tap-diagnostic.sh +++ b/t/tap-diagnostic.sh @@ -52,23 +52,19 @@ PASS: all.test 4 - zardoz # all.test: Shell metacharacters here: $metacharacters END -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check $EGREP "#.*all\\.test|a comment|(Tests|Shell) " stdout && exit 1 count_test_results total=4 pass=2 fail=0 xpass=0 xfail=1 skip=1 error=0 echo 'AM_TEST_LOG_DRIVER_FLAGS = --comments' >> Makefile -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check $FGREP ' all.test' stdout > got cat exp cat got diff exp got count_test_results total=4 pass=2 fail=0 xpass=0 xfail=1 skip=1 error=0 -run_make TEST_LOG_DRIVER_FLAGS="--no-comments" check >stdout \ - || { cat stdout; exit 1; } -cat stdout +run_make -O TEST_LOG_DRIVER_FLAGS="--no-comments" check $EGREP "#.*all\\.test|a comment|(Tests|Shell) " stdout && exit 1 count_test_results total=4 pass=2 fail=0 xpass=0 xfail=1 skip=1 error=0 @@ -88,8 +84,7 @@ ok #TODO END -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check count_test_results total=1 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=0 # Diagnostic without leading whitespace, or with extra leading whitespace, @@ -109,8 +104,7 @@ ok 1 # ${tab} ${tab}${tab}foo bar${tab}baz ${tab} END -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check count_test_results total=1 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=0 grep "^# all.test:${ws0p}foo$" stdout diff --git a/t/tap-doc.sh b/t/tap-doc.sh index 1253bf5da..3cc3b5970 100644 --- a/t/tap-doc.sh +++ b/t/tap-doc.sh @@ -70,8 +70,7 @@ $AUTOMAKE -a ./configure -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check cat > exp <<'END' PASS: foo.sh diff --git a/t/tap-doc2.sh b/t/tap-doc2.sh index 2da509a12..a1bacd84a 100644 --- a/t/tap-doc2.sh +++ b/t/tap-doc2.sh @@ -78,8 +78,7 @@ cp "$am_scriptdir"/tap-driver.sh build-aux \ case $MAKE in *\ -j*) skip_ "can't work easily with concurrent make";; esac -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check cat > exp <<'END' PASS: foo.test 1 - Swallows fly @@ -101,10 +100,9 @@ diff exp got grep '^Please report to bug-automake@gnu\.org$' stdout -run_make >stdout check \ +run_make -O check \ TESTS='foo.test baz.test' \ - TEST_LOG_DRIVER_FLAGS='--comments --ignore-exit' \ - || { cat stdout; exit 1; } + TEST_LOG_DRIVER_FLAGS='--comments --ignore-exit' cat > exp <<'END' PASS: foo.test 1 - Swallows fly diff --git a/t/tap-empty-diagnostic.sh b/t/tap-empty-diagnostic.sh index 4a6f2b127..68a51c1a3 100644 --- a/t/tap-empty-diagnostic.sh +++ b/t/tap-empty-diagnostic.sh @@ -30,8 +30,7 @@ ok 1$ # ${tab} $tab${tab}$ END -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check grep '^PASS:.*all\.test' stdout # Sanity check. grep '#.*all\.test' stdout && exit 1 diff --git a/t/tap-empty.sh b/t/tap-empty.sh index 7943f1dcd..ec1e909f5 100644 --- a/t/tap-empty.sh +++ b/t/tap-empty.sh @@ -45,8 +45,7 @@ END for input in empty blank white white2; do cp $input.test all.test - $MAKE check >stdout && { cat stdout; exit 1; } - cat stdout + run_make -O -e FAIL check count_test_results total=1 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=1 grep '^ERROR: all\.test - missing test plan$' stdout done diff --git a/t/tap-escape-directive-2.sh b/t/tap-escape-directive-2.sh index 135df29f9..63caafdc4 100644 --- a/t/tap-escape-directive-2.sh +++ b/t/tap-escape-directive-2.sh @@ -37,9 +37,7 @@ not ok \\\\\\\\\\# TODO ok \\\\\\\\\\# SKIP END -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O check count_test_results total=8 pass=2 fail=0 xpass=0 xfail=3 skip=3 error=0 grep '^XFAIL: all\.test 1 .*# TODO' stdout diff --git a/t/tap-escape-directive.sh b/t/tap-escape-directive.sh index daf766c76..feb95d3b0 100644 --- a/t/tap-escape-directive.sh +++ b/t/tap-escape-directive.sh @@ -27,9 +27,7 @@ ok \# TODO ok \# SKIP END -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O check count_test_results total=2 pass=2 fail=0 xpass=0 xfail=0 skip=0 error=0 grep '^PASS: all\.test 1 .*# TODO' stdout diff --git a/t/tap-exit.sh b/t/tap-exit.sh index 9e0937d75..95c194ebe 100644 --- a/t/tap-exit.sh +++ b/t/tap-exit.sh @@ -36,8 +36,7 @@ chmod a+x *.test . tap-setup.sh -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=8 pass=4 fail=0 xpass=0 xfail=0 skip=0 error=4 grep '^ERROR: exit1\.test - exited with status 1$' stdout @@ -46,8 +45,7 @@ grep '^ERROR: exit77\.test - exited with status 77$' stdout grep '^ERROR: exit99\.test - exited with status 99$' stdout echo TEST_LOG_DRIVER_FLAGS = --ignore-exit >> Makefile -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check count_test_results total=4 pass=4 fail=0 xpass=0 xfail=0 skip=0 error=0 : diff --git a/t/tap-fancy.sh b/t/tap-fancy.sh index 724dd1bd1..f6e8d4c71 100644 --- a/t/tap-fancy.sh +++ b/t/tap-fancy.sh @@ -68,9 +68,7 @@ not ok!#TODO? ok~#TODO END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=21 pass=6 fail=6 xfail=4 xpass=1 skip=4 error=0 # @@ -91,9 +89,7 @@ ok $weirdchars # SKIP Bail out! $weirdchars END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=6 pass=1 fail=1 xfail=1 xpass=1 skip=1 error=1 $FGREP "PASS: all.test 1 $weirdchars" stdout $FGREP "FAIL: all.test 2 $weirdchars" stdout @@ -118,10 +114,9 @@ ok # SKIP $bs Bail out! $bs END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=6 pass=1 fail=1 xfail=1 xpass=1 skip=1 error=1 + grep '^PASS: all\.test 1 \\$' stdout grep '^FAIL: all\.test 2 \\$' stdout grep '^XPASS: all\.test 3 # TODO \\$' stdout diff --git a/t/tap-fancy2.sh b/t/tap-fancy2.sh index 1e53c2b69..c0742f16a 100644 --- a/t/tap-fancy2.sh +++ b/t/tap-fancy2.sh @@ -125,8 +125,7 @@ total=$(($total + 3)) # And add the test plan! echo 1..$total >> all.test -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check $EGREP '^(PASS|FAIL|SKIP).*#.*TODO' stdout && exit 1 $EGREP '^X?(PASS|FAIL).*#.*SKIP' stdout && exit 1 diff --git a/t/tap-global-result.sh b/t/tap-global-result.sh index a4a1fd161..025d78498 100644 --- a/t/tap-global-result.sh +++ b/t/tap-global-result.sh @@ -140,8 +140,7 @@ END tests=$(echo *.test) # Also required later. -run_make TESTS="$tests" check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL TESTS="$tests" check # Dirty trick required here. for tst in $(echo " $tests " | sed 's/\.test / /'); do diff --git a/t/tap-lazy-check.sh b/t/tap-lazy-check.sh index fc48ae7a5..cd68ccd35 100644 --- a/t/tap-lazy-check.sh +++ b/t/tap-lazy-check.sh @@ -64,8 +64,7 @@ test -f baz.log rm -f foo.log bar.log -run_make AM_LAZY_CHECK=yes check > stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check AM_LAZY_CHECK=yes test -f foo.log test -f bar.log grep '^PASS: foo\.test 1$' stdout @@ -79,8 +78,7 @@ touch foo.test # We re-run only a successful test, but the tests that failed in the # previous run should still be taken into account, and cause an overall # failure. -run_make AM_LAZY_CHECK=yes check > stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check AM_LAZY_CHECK=yes grep '^PASS: foo\.test 1$' stdout grep '^PASS: foo\.test 2$' stdout grep 'ba[rz]\.test' stdout && exit 1 @@ -89,8 +87,7 @@ grep_summary $sleep touch zardoz -run_make AM_LAZY_CHECK=yes check > stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check AM_LAZY_CHECK=yes grep '^ERROR: baz\.test' stdout $EGREP '(foo|bar)\.test' stdout && exit 1 is_newest baz.log zardoz @@ -98,8 +95,7 @@ grep_summary # Now, explicitly retry with all test logs already updated, and ensure # that the summary is still displayed. -run_make AM_LAZY_CHECK=yes check > stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check AM_LAZY_CHECK=yes $EGREP '(foo|bar|baz)\.test' stdout && exit 1 grep_summary diff --git a/t/tap-log.sh b/t/tap-log.sh index d3432c8cd..0abe4daca 100644 --- a/t/tap-log.sh +++ b/t/tap-log.sh @@ -132,8 +132,7 @@ test -f global.log rm -f *.log -VERBOSE=yes $MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check VERBOSE=yes cat global.log test ! -e my.log test ! -e test-suite.log diff --git a/t/tap-merge-stdout-stderr.sh b/t/tap-merge-stdout-stderr.sh index f442fa71e..26a16e8c8 100644 --- a/t/tap-merge-stdout-stderr.sh +++ b/t/tap-merge-stdout-stderr.sh @@ -40,10 +40,9 @@ echo "# foo foo foo" >&2 END chmod a+x all.test -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O check count_test_results total=4 pass=2 fail=0 xpass=0 xfail=1 skip=1 error=0 + grep '^# all\.test: foo foo foo' stdout cat > all.test <<END @@ -53,17 +52,12 @@ echo ok 1 echo 'Bail out!' >&2 END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=2 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=1 # See that the option '--no-merge' can override the effect of '--merge'. -run_make TEST_LOG_DRIVER_FLAGS=--no-merge check >stdout \ - || { cat stdout; exit 1; } -cat stdout - +run_make -O TEST_LOG_DRIVER_FLAGS=--no-merge check count_test_results total=1 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=0 : diff --git a/t/tap-missing-plan-and-bad-exit.sh b/t/tap-missing-plan-and-bad-exit.sh index 45b2413e1..b578e6ac9 100644 --- a/t/tap-missing-plan-and-bad-exit.sh +++ b/t/tap-missing-plan-and-bad-exit.sh @@ -32,8 +32,7 @@ chmod a+x foo.test . tap-setup.sh -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=2 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=2 grep '^ERROR: foo\.test - exited with status 123$' stdout diff --git a/t/tap-more2.sh b/t/tap-more2.sh index 5c4d43f0f..b1b1f088b 100644 --- a/t/tap-more2.sh +++ b/t/tap-more2.sh @@ -82,8 +82,7 @@ $AUTOMAKE --add-missing ./configure for target in check distcheck; do - $MAKE $target >stdout || { cat stdout; exit 1; } - cat stdout + run_make -O $target count_test_results total=3 pass=1 fail=0 xpass=0 xfail=1 skip=1 error=0 done diff --git a/t/tap-msg0-bailout.sh b/t/tap-msg0-bailout.sh index 9e2bdcedf..c6b3ca5e2 100644 --- a/t/tap-msg0-bailout.sh +++ b/t/tap-msg0-bailout.sh @@ -26,9 +26,7 @@ echo 'Bail out! 0' > a.test echo 'Bail out! 0.0' > b.test -run_make TESTS='a.test b.test' check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL TESTS='a.test b.test' check count_test_results total=2 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=2 grep '^ERROR: a.test - Bail out! 0$' stdout diff --git a/t/tap-msg0-directive.sh b/t/tap-msg0-directive.sh index a73515304..5f06820cc 100644 --- a/t/tap-msg0-directive.sh +++ b/t/tap-msg0-directive.sh @@ -28,9 +28,7 @@ not ok 2 # TODO 0 ok 3 # SKIP 0 END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=3 pass=0 fail=0 xpass=1 xfail=1 skip=1 error=0 grep '^XPASS: all\.test 1 # TODO 0$' stdout diff --git a/t/tap-msg0-misc.sh b/t/tap-msg0-misc.sh index e1f48a945..c5c724538 100644 --- a/t/tap-msg0-misc.sh +++ b/t/tap-msg0-misc.sh @@ -45,9 +45,7 @@ ok 14 0.0 # SKIP 0.0 END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=14 pass=2 fail=0 xpass=4 xfail=4 skip=4 error=0 sed '/^ *$/d' > exp << 'END' diff --git a/t/tap-msg0-planskip.sh b/t/tap-msg0-planskip.sh index 3c6252d77..71e882e71 100644 --- a/t/tap-msg0-planskip.sh +++ b/t/tap-msg0-planskip.sh @@ -25,9 +25,7 @@ echo '1..0 # SKIP 0' > a.test echo '1..0 # SKIP 0.0' > b.test -run_make TESTS='a.test b.test' check >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O TESTS='a.test b.test' check count_test_results total=2 pass=0 fail=0 xpass=0 xfail=0 skip=2 error=0 grep '^SKIP: a.test - 0$' stdout diff --git a/t/tap-msg0-result.sh b/t/tap-msg0-result.sh index cdadd4057..2e0263f1f 100644 --- a/t/tap-msg0-result.sh +++ b/t/tap-msg0-result.sh @@ -35,9 +35,7 @@ ok 9 0 # SKIP ok - 0 # SKIP END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=10 pass=2 fail=2 xpass=2 xfail=2 skip=2 error=0 cat > exp << 'END' diff --git a/t/tap-negative-numbers.sh b/t/tap-negative-numbers.sh index 0a04fdbe5..efd17dc48 100644 --- a/t/tap-negative-numbers.sh +++ b/t/tap-negative-numbers.sh @@ -33,9 +33,7 @@ ok -121 not ok -50000 END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=7 pass=2 fail=2 xpass=1 xfail=1 skip=1 error=0 cat > exp <<'END' diff --git a/t/tap-no-disable-hard-error.sh b/t/tap-no-disable-hard-error.sh index 99b2f49fb..1a47b56c8 100644 --- a/t/tap-no-disable-hard-error.sh +++ b/t/tap-no-disable-hard-error.sh @@ -41,9 +41,7 @@ cat > noplan.test <<END # nothing here END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=3 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=3 : diff --git a/t/tap-no-merge-stdout-stderr.sh b/t/tap-no-merge-stdout-stderr.sh index 4ce486992..1fc0da638 100644 --- a/t/tap-no-merge-stdout-stderr.sh +++ b/t/tap-no-merge-stdout-stderr.sh @@ -42,10 +42,9 @@ END chmod a+x all.test -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O check count_test_results total=2 pass=1 fail=0 xpass=0 xfail=0 skip=1 error=0 + $FGREP 'foo foo foo' stdout $FGREP 'bar bar bar' stdout && exit 1 diff --git a/t/tap-no-spurious-numbers.sh b/t/tap-no-spurious-numbers.sh index 57c5ddcff..95e9832c9 100644 --- a/t/tap-no-spurious-numbers.sh +++ b/t/tap-no-spurious-numbers.sh @@ -91,9 +91,7 @@ grep '#.*#' all.test \ test $(wc -l <all.test) -lt $highno \ || framework_failure_ "creating all.test" -$MAKE check >stdout || : -cat stdout - +run_make -O -e IGNORE check count_test_results total=$total pass=$pass fail=$fail skip=$skip \ xpass=$xpass xfail=$xfail error=$error diff --git a/t/tap-no-spurious.sh b/t/tap-no-spurious.sh index 8d4552900..4d5e71ce0 100644 --- a/t/tap-no-spurious.sh +++ b/t/tap-no-spurious.sh @@ -105,9 +105,7 @@ cat all.test \ && test $(grep -c '^not ok1$' all.test) -eq 1 \ || framework_failure_ "creating all.test" -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O check count_test_results total=5 pass=5 fail=0 xpass=0 xfail=0 skip=0 error=0 : diff --git a/t/tap-not-ok-skip.sh b/t/tap-not-ok-skip.sh index 4ad1d4244..5d747ee6c 100644 --- a/t/tap-not-ok-skip.sh +++ b/t/tap-not-ok-skip.sh @@ -30,9 +30,7 @@ not ok - foo # SKIP not ok 4 - bar # SKIP END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=4 pass=0 fail=4 skip=0 xpass=0 xfail=0 error=0 : diff --git a/t/tap-number-wordboundary.sh b/t/tap-number-wordboundary.sh index a8e9f1c49..ef21f67be 100644 --- a/t/tap-number-wordboundary.sh +++ b/t/tap-number-wordboundary.sh @@ -31,9 +31,7 @@ not ok 4?&%$ foo4 # TODO ok 5"`!! foo5 # TODO END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=5 pass=1 fail=1 skip=1 xpass=1 xfail=1 error=0 $EGREP '^PASS: all\.test 1 ?: foo1$' stdout @@ -49,9 +47,7 @@ not ok 1! ok 476$ # SKIP END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=3 pass=0 fail=0 skip=0 xpass=0 xfail=0 error=3 $EGREP '^ERROR: all\.test 2 ?: quux # OUT-OF-ORDER \(expecting 1\)$' stdout @@ -102,9 +98,7 @@ cat all.test # Sanity check. grep "^ok 1'$" all.test || framework_failure_ "creating all.test" -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O check count_test_results total=$planned pass=$planned \ fail=0 skip=0 xpass=0 xfail=0 error=0 diff --git a/t/tap-numbers-leading-zero.sh b/t/tap-numbers-leading-zero.sh index 32c252e68..eeb2ee760 100644 --- a/t/tap-numbers-leading-zero.sh +++ b/t/tap-numbers-leading-zero.sh @@ -23,8 +23,7 @@ do_checks () { - $MAKE check >stdout && { cat stdout; exit 1; } - cat stdout + run_make -O -e FAIL check count_test_results "$@" # Allow some normalization of leading zeros, without forcing it. LC_ALL=C sed -n 's/: all\.test 0*\([0-9]\)/: all.test \1/p' stdout > got diff --git a/t/tap-numeric-description.sh b/t/tap-numeric-description.sh index a007af588..a89edf9b0 100644 --- a/t/tap-numeric-description.sh +++ b/t/tap-numeric-description.sh @@ -53,9 +53,7 @@ XPASS: all.test 9 ${x9} # TODO XPASS: all.test 10 - ${x10} # TODO END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=10 pass=2 fail=2 xpass=2 xfail=2 skip=2 error=0 $FGREP ': all.test' stdout > got diff --git a/t/tap-out-of-order.sh b/t/tap-out-of-order.sh index bac7acdb5..bb26edde4 100644 --- a/t/tap-out-of-order.sh +++ b/t/tap-out-of-order.sh @@ -57,10 +57,7 @@ ok 16 ok 17 END -run_make TESTS='a.test b.test c.test d.test' check >stdout \ - && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL TESTS='a.test b.test c.test d.test' check count_test_results total=17 pass=8 fail=0 xpass=0 xfail=1 skip=0 error=8 test $($FGREP -c ': a.test' stdout) -eq 3 diff --git a/t/tap-plan-corner.sh b/t/tap-plan-corner.sh index 27f41fdbc..7b64d3efd 100644 --- a/t/tap-plan-corner.sh +++ b/t/tap-plan-corner.sh @@ -36,9 +36,7 @@ ok 1 END for pos in leading trailing; do - run_make TESTS="$pos-repeated.test" check >stdout \ - && { cat stdout; exit 1; } - cat stdout + run_make -O -e FAIL TESTS="$pos-repeated.test" check count_test_results total=2 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=1 grep "^ERROR: $pos-repeated\\.test - multiple test plans$" stdout done @@ -59,9 +57,8 @@ ok 2 1..2 END -run_make TESTS="leading-repeated.test trailing-repeated.test" check >stdout \ - && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check \ + TESTS='leading-repeated.test trailing-repeated.test' count_test_results total=6 pass=3 fail=0 xpass=0 xfail=0 skip=0 error=3 grep "^ERROR: leading-repeated\\.test - multiple test plans$" stdout grep "^ERROR: trailing-repeated\\.test - multiple test plans$" stdout @@ -90,9 +87,7 @@ cat > 4.test <<END 1..0 # SKIP END -run_make TESTS="1.test 2.test 3.test 4.test" check >stdout \ - && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check TESTS='1.test 2.test 3.test 4.test' count_test_results total=8 pass=0 fail=0 xpass=0 xfail=0 skip=4 error=4 for i in 1 2 3 4; do grep "^ERROR: $i\\.test - multiple test plans$" stdout @@ -112,8 +107,7 @@ ok 4 ok 5 END -run_make check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=8 pass=5 fail=0 xpass=0 xfail=0 skip=0 error=3 cat > exp <<'END' @@ -143,8 +137,7 @@ ok 2 ok 3 END -run_make check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=5 pass=2 fail=0 xpass=0 xfail=0 skip=0 error=3 cat > exp <<'END' @@ -174,8 +167,7 @@ ok 4 ok 5 END -run_make check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=7 pass=3 fail=0 xpass=0 xfail=0 skip=0 error=4 cat > exp <<'END' diff --git a/t/tap-plan-errors.sh b/t/tap-plan-errors.sh index bc0d0189e..c49a19067 100644 --- a/t/tap-plan-errors.sh +++ b/t/tap-plan-errors.sh @@ -32,8 +32,7 @@ my_check () cat > all.test test -n "$err" || fatal_ "\$err not set before calling my_check" cat all.test # For debugging. - $MAKE check >stdout && { cat stdout; exit 1; } - cat stdout + run_make -O -e FAIL check count_test_results "$@" grep "^ERROR: all\\.test $err$" stdout unset err diff --git a/t/tap-plan-leading-zero.sh b/t/tap-plan-leading-zero.sh index 00caeb459..92f43e4f8 100644 --- a/t/tap-plan-leading-zero.sh +++ b/t/tap-plan-leading-zero.sh @@ -47,10 +47,7 @@ done >> d.test echo 1..00 > e.test echo '1..000 # SKIP' > f.test -run_make TESTS='a.test b.test c.test d.test e.test f.test' check >stdout \ - || { cat stdout; exit 1; } -cat stdout - +run_make -O TESTS='a.test b.test c.test d.test e.test f.test' check count_test_results total=115 pass=113 xfail=0 skip=2 fail=0 xpass=0 error=0 : diff --git a/t/tap-plan-malformed.sh b/t/tap-plan-malformed.sh index e2dd7d02c..82da56984 100644 --- a/t/tap-plan-malformed.sh +++ b/t/tap-plan-malformed.sh @@ -47,9 +47,7 @@ END tests_list=$(echo *.test) -run_make TESTS="$tests_list" check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL TESTS="$tests_list" check count_test_results total=9 pass=2 fail=0 xpass=0 xfail=2 skip=0 error=5 for tst in $tests_list; do diff --git a/t/tap-plan-middle.sh b/t/tap-plan-middle.sh index bfc473b3f..dd3247bbd 100644 --- a/t/tap-plan-middle.sh +++ b/t/tap-plan-middle.sh @@ -73,9 +73,7 @@ END tests=$(echo *.test) for tap_flags in "" "--comments"; do - run_make TEST_LOG_DRIVER_FLAGS="$tap_flags" TESTS="$tests" check >stdout \ - || { cat stdout; exit 1; } - cat stdout + run_make -O TEST_LOG_DRIVER_FLAGS="$tap_flags" TESTS="$tests" check count_test_results total=12 pass=7 xfail=2 skip=3 fail=0 xpass=0 error=0 done diff --git a/t/tap-plan-whitespace.sh b/t/tap-plan-whitespace.sh index 659a7e77a..a3e2137b9 100644 --- a/t/tap-plan-whitespace.sh +++ b/t/tap-plan-whitespace.sh @@ -32,9 +32,7 @@ cat > bar.test <<END ok 1 END -run_make TESTS='foo.test bar.test' check >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O TESTS='foo.test bar.test' check count_test_results total=3 pass=3 fail=0 error=0 xpass=0 xfail=0 skip=0 : diff --git a/t/tap-plan.sh b/t/tap-plan.sh index 50ae42605..f17d90474 100644 --- a/t/tap-plan.sh +++ b/t/tap-plan.sh @@ -41,9 +41,9 @@ ok END for tap_flags in "" "--comments"; do - run_make TEST_LOG_DRIVER_FLAGS="$tap_flags" TESTS='top.test bot.test' \ - check >stdout || { cat stdout; exit 1; } - cat stdout + run_make -O check \ + TESTS='top.test bot.test' \ + TEST_LOG_DRIVER_FLAGS="$tap_flags" count_test_results total=7 pass=5 xfail=1 skip=1 fail=0 xpass=0 error=0 done diff --git a/t/tap-planskip-and-logging.sh b/t/tap-planskip-and-logging.sh index b3089e41a..aaea4d0ab 100644 --- a/t/tap-planskip-and-logging.sh +++ b/t/tap-planskip-and-logging.sh @@ -45,10 +45,7 @@ an early non-TAP line a later non-TAP line END -run_make TESTS='foo.test foo2.test bar.test' check >stdout \ - || { cat stdout; exit 1; } -cat stdout - +run_make -O TESTS='foo.test foo2.test bar.test' check count_test_results total=3 pass=0 fail=0 xpass=0 xfail=0 skip=3 error=0 grep '^# foo\.test: a comment$' stdout diff --git a/t/tap-planskip-badexit.sh b/t/tap-planskip-badexit.sh index d02d184bd..1336eac9a 100644 --- a/t/tap-planskip-badexit.sh +++ b/t/tap-planskip-badexit.sh @@ -38,8 +38,7 @@ END chmod a+x one.test two.test -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check # The 'prove' utility reports both the skip and the non-zero exit status, # so we do the same. diff --git a/t/tap-planskip-bailout.sh b/t/tap-planskip-bailout.sh index 655d1c9c1..0e6f7b155 100644 --- a/t/tap-planskip-bailout.sh +++ b/t/tap-planskip-bailout.sh @@ -27,8 +27,7 @@ cat > all.test <<END Bail out! END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=2 pass=0 fail=0 xpass=0 xfail=0 skip=1 error=1 grep '^ERROR: all\.test - Bail out!' stdout diff --git a/t/tap-planskip-case-insensitive.sh b/t/tap-planskip-case-insensitive.sh index 54a644e52..790d9846d 100644 --- a/t/tap-planskip-case-insensitive.sh +++ b/t/tap-planskip-case-insensitive.sh @@ -32,9 +32,7 @@ for c4 in p P; do echo "1..0 # $c1$c2$c3$c4 foobar" > $j.test done; done; done; done -run_make TESTS="$(echo *.test)" check >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O TESTS="$(echo *.test)" check count_test_results total=16 pass=0 fail=0 xpass=0 xfail=0 skip=16 error=0 for tst in *.test; do diff --git a/t/tap-planskip-late.sh b/t/tap-planskip-late.sh index ab3f336f5..94af3e82b 100644 --- a/t/tap-planskip-late.sh +++ b/t/tap-planskip-late.sh @@ -32,8 +32,7 @@ cat > bar.test <<END 1..0 END -run_make TESTS='foo.test bar.test' check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O TESTS='foo.test bar.test' check grep '^SKIP: foo\.test .* from the last line$' stdout grep '^SKIP: bar\.test$' stdout diff --git a/t/tap-planskip-later-errors.sh b/t/tap-planskip-later-errors.sh index e924c135a..f26c14b71 100644 --- a/t/tap-planskip-later-errors.sh +++ b/t/tap-planskip-later-errors.sh @@ -30,9 +30,7 @@ a non-TAP line 1..1 END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=4 pass=0 fail=0 xpass=0 xfail=0 skip=1 error=3 test $(grep -c '^ERROR: all\.test - multiple test plans' stdout) -eq 3 diff --git a/t/tap-planskip-unplanned-corner.sh b/t/tap-planskip-unplanned-corner.sh index 217646995..36473b386 100644 --- a/t/tap-planskip-unplanned-corner.sh +++ b/t/tap-planskip-unplanned-corner.sh @@ -32,9 +32,7 @@ ok 1 # SKIP 1..0 # SKIP END -run_make TESTS='foo.test bar.test' check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL TESTS='foo.test bar.test' check count_test_results total=5 pass=0 fail=0 xpass=0 xfail=0 skip=2 error=3 # Don't be too strict w.r.t. the format of the "skip whole test" message. diff --git a/t/tap-planskip-unplanned.sh b/t/tap-planskip-unplanned.sh index 07ed54435..f48585c61 100644 --- a/t/tap-planskip-unplanned.sh +++ b/t/tap-planskip-unplanned.sh @@ -27,8 +27,7 @@ cat > all.test <<END ok 1 1..0 # SKIP too late END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=2 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=1 grep '^ERROR: all\.test - too many tests run (expected 0, got 1)$' stdout @@ -38,8 +37,7 @@ ok 2 # SKIP not ok 3 # TODO 1..0 # SKIP too late END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=4 pass=1 fail=0 xpass=0 xfail=1 skip=1 error=1 grep '^ERROR: all\.test - too many tests run (expected 0, got 3)$' stdout @@ -47,8 +45,7 @@ cat > all.test <<END 1..0 # SKIP falsified later ok 1 END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=3 pass=0 fail=0 xpass=0 xfail=0 skip=1 error=2 grep '^ERROR: all\.test 1 # UNPLANNED$' stdout grep '^ERROR: all\.test - too many tests run (expected 0, got 1)$' stdout @@ -60,8 +57,7 @@ ok 2 # SKIP not ok 3 not ok 4 # TODO END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=6 pass=0 fail=0 xpass=0 xfail=0 skip=1 error=5 grep '^ERROR: all\.test 1 # UNPLANNED$' stdout grep '^ERROR: all\.test 2 # UNPLANNED$' stdout diff --git a/t/tap-planskip-whitespace.sh b/t/tap-planskip-whitespace.sh index 9513ca2ec..39110ea73 100644 --- a/t/tap-planskip-whitespace.sh +++ b/t/tap-planskip-whitespace.sh @@ -34,10 +34,7 @@ cat > baz.test <<END 1..0 # SKIP${tab} Strip${tab}external preserve ${tab}middle ${tab}${sp} END -run_make TESTS='foo.test bar.test baz.test' check > stdout \ - || { cat stdout; exit 1; } -cat stdout - +run_make -O TESTS='foo.test bar.test baz.test' check count_test_results total=3 pass=0 fail=0 error=0 xpass=0 xfail=0 skip=3 grep "SKIP: foo\\.test - Strip leading & trailing$" stdout diff --git a/t/tap-planskip.sh b/t/tap-planskip.sh index d0ab69272..71cacf4e2 100644 --- a/t/tap-planskip.sh +++ b/t/tap-planskip.sh @@ -56,10 +56,8 @@ cat > mu.test <<END 1..0 # SKIP $weirdchars END -run_make TESTS='foo.test bar.test baz.test wget.test curl.test mu.test' \ - check >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O check \ + TESTS='foo.test bar.test baz.test wget.test curl.test mu.test' count_test_results total=6 pass=0 fail=0 xpass=0 xfail=0 skip=6 error=0 # Look for a regression where the "1..0" wasn't being stripped from the diff --git a/t/tap-recheck.sh b/t/tap-recheck.sh index af3966d14..4d6886427 100644 --- a/t/tap-recheck.sh +++ b/t/tap-recheck.sh @@ -86,13 +86,13 @@ $AUTOMAKE -a do_recheck () { case $* in - --fail) on_bad_rc='&&';; - --pass) on_bad_rc='||';; + --fail) status=FAIL;; + --pass) status=0;; *) fatal_ "invalid usage of function 'do_recheck'";; esac rm -f *.run - eval "\$MAKE recheck >stdout $on_bad_rc { cat stdout; ls -l; exit 1; }; :" - cat stdout; ls -l + run_make -O -e $status recheck || { ls -l; exit 1; } + ls -l } for vpath in : false; do @@ -120,8 +120,7 @@ for vpath in : false; do count_test_results total=0 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=0 : Run the tests for the first time. - $MAKE check >stdout && { cat stdout; exit 1; } - cat stdout + run_make -O -e FAIL check ls -l # All the test scripts should have run. test -f a.run diff --git a/t/tap-result-comment.sh b/t/tap-result-comment.sh index 6c14506d0..0ca2d219b 100644 --- a/t/tap-result-comment.sh +++ b/t/tap-result-comment.sh @@ -30,9 +30,7 @@ not ok # TOD${tab} ok 5 # ${tab}${tab}TOOD${tab}${sp}${sp} END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL check count_test_results total=5 pass=3 fail=2 xpass=0 xfail=0 skip=0 error=0 # Don't be too strict about trailing white space. diff --git a/t/tap-signal.tap b/t/tap-signal.tap index 10a53a2f2..1e60a26dc 100644 --- a/t/tap-signal.tap +++ b/t/tap-signal.tap @@ -106,8 +106,7 @@ signal_caught () esac } -command_ok_ '"make check" fails' eval 'not $MAKE check >stdout' -cat stdout # For debugging. +command_ok_ '"make check" fails' run_make -O -e FAIL check command_ok_ "count of test results" count_test_results \ total=$(($results_count * 2)) \ @@ -120,8 +119,7 @@ done echo 'TEST_LOG_DRIVER_FLAGS = --ignore-exit' >> Makefile -command_ok_ '"make check" passes [--ignore-exit]' eval '$MAKE check >stdout' -cat stdout # For debugging. +command_ok_ '"make check" passes [--ignore-exit]' run_make -O check command_ok_ "count of test results [--ignore-exit]" count_test_results \ total=$results_count pass=$results_count \ diff --git a/t/tap-test-number-0.sh b/t/tap-test-number-0.sh index a42ff548b..b5b161b30 100644 --- a/t/tap-test-number-0.sh +++ b/t/tap-test-number-0.sh @@ -70,10 +70,7 @@ cat > e.test <<END ok 0 # TODO END -run_make TESTS='a.test b.test c.test d.test e.test' check >stdout \ - && { cat stdout; exit 1; } -cat stdout - +run_make -O -e FAIL TESTS='a.test b.test c.test d.test e.test' check count_test_results total=5 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=5 grep '^ERROR: a\.test 0 # OUT-OF-ORDER (expecting 1)$' stdout diff --git a/t/tap-todo-skip-together.sh b/t/tap-todo-skip-together.sh index c9a339ee1..a7d052cc1 100644 --- a/t/tap-todo-skip-together.sh +++ b/t/tap-todo-skip-together.sh @@ -28,9 +28,7 @@ ok 1 # SKIP TODO not ok 2 # TODO SKIP END -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O check count_test_results total=2 pass=0 fail=0 xpass=0 xfail=1 skip=1 error=0 grep '^SKIP: all\.test 1 ' stdout diff --git a/t/tap-todo-skip-whitespace.sh b/t/tap-todo-skip-whitespace.sh index c4c47d916..55e4b8ff9 100644 --- a/t/tap-todo-skip-whitespace.sh +++ b/t/tap-todo-skip-whitespace.sh @@ -68,8 +68,8 @@ my_make_check () *) fatal_ "bad argument '$1' for my_make_check";; esac cat all.test - $MAKE check >stdout || : # Don't care about the exit status in this test. - cat stdout + # We don't care about the exit status in this test. + run_make -O -e IGNORE check count_test_results total=15 pass=0 fail=0 error=0 \ xpass=$xpass xfail=$xfail skip=$skip # Don't be too strict w.r.t. possible normalization of "TODO: foo" into diff --git a/t/tap-todo-skip.sh b/t/tap-todo-skip.sh index a9b3c5d7e..ee8e76aa5 100644 --- a/t/tap-todo-skip.sh +++ b/t/tap-todo-skip.sh @@ -60,9 +60,7 @@ done; done; done; done; done >> all.test cat all.test # For debugging. -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O check count_test_results total=256 pass=0 fail=0 xpass=0 xfail=128 skip=128 error=0 # -------------------------------------------------------- # @@ -82,9 +80,7 @@ ok 8 - SKIP ok 9 END -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout - +run_make -O check count_test_results total=9 pass=9 fail=0 xpass=0 xfail=0 skip=0 error=0 : diff --git a/t/tap-unplanned.sh b/t/tap-unplanned.sh index 11b68a32e..c6521b038 100644 --- a/t/tap-unplanned.sh +++ b/t/tap-unplanned.sh @@ -26,8 +26,7 @@ cat > all.test <<END ok 1 ok 2 END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=3 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=2 grep '^ERROR: all\.test - too many tests run (expected 1, got 2)$' stdout grep '^ERROR: all\.test 2 # UNPLANNED$' stdout @@ -38,8 +37,7 @@ ok 1 ok 2 ok 3 END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=4 pass=2 fail=0 xpass=0 xfail=0 skip=0 error=2 grep '^ERROR: all\.test - too many tests run (expected 2, got 3)$' stdout grep '^ERROR: all\.test 3 # UNPLANNED$' stdout @@ -53,8 +51,7 @@ ok 3 not ok 4 ok 5 # SKIP END -run_make XFAIL_TESTS=all.test check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL XFAIL_TESTS=all.test check count_test_results total=6 pass=0 fail=0 xpass=0 xfail=1 skip=1 error=4 grep '^ERROR: all\.test - too many tests run (expected 2, got 5)$' stdout grep '^ERROR: all\.test 3 # UNPLANNED$' stdout @@ -120,8 +117,7 @@ cat > t <<END END -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check count_test_results total=22 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=21 echo 'PASS: all.test 1' > exp @@ -146,8 +142,7 @@ for x in 'ok' 'ok 3' 'not ok' 'not ok # TODO' 'ok # TODO' 'ok # SKIP'; do $x 1..2 END - $MAKE check >stdout && { cat stdout; exit 1; } - cat stdout + run_make -O -e FAIL check test $($FGREP -c ': all.test' stdout) -eq 4 $EGREP '^PASS: all\.test 1($| )' stdout $EGREP '^SKIP: all\.test 2($| )' stdout diff --git a/t/tap-whitespace-normalization.sh b/t/tap-whitespace-normalization.sh index 8ed732803..65bc2fe16 100644 --- a/t/tap-whitespace-normalization.sh +++ b/t/tap-whitespace-normalization.sh @@ -146,10 +146,9 @@ chmod a+x *.test . tap-setup.sh -# Don't care about exit status or number of test results, they should be -# checked for in many other tests. -$MAKE check >stdout || : -cat stdout +# We don't care about exit status or number of test results, they +# should be checked for in many other tests. +run_make -O -e FAIL check LC_ALL=C sort exp > t mv -f t exp diff --git a/t/tap-with-and-without-number.sh b/t/tap-with-and-without-number.sh index 87e4872a2..6b3b22423 100644 --- a/t/tap-with-and-without-number.sh +++ b/t/tap-with-and-without-number.sh @@ -34,8 +34,7 @@ ok 6 # SKIP ok zardoz END -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check count_test_results total=7 pass=4 fail=0 xpass=0 xfail=2 skip=1 error=0 grep '^PASS: all\.test 1 foo$' stdout diff --git a/t/test-driver-acsubst.sh b/t/test-driver-acsubst.sh index 031888235..5439617da 100644 --- a/t/test-driver-acsubst.sh +++ b/t/test-driver-acsubst.sh @@ -82,13 +82,12 @@ END chmod a+x foo bar.test baz.sh $MAKE check-autodefs -st=0; $MAKE check >stdout || st=$? -cat stdout +run_make -O -e IGNORE check cat test-suite.log cat foo.log cat bar.log cat baz.log -test $st -eq 0 || exit 1 +test $am_make_rc_got -eq 0 count_test_results total=3 pass=1 fail=0 skip=1 xfail=1 xpass=0 error=0 : diff --git a/t/test-driver-custom-multitest-recheck.sh b/t/test-driver-custom-multitest-recheck.sh index 155b37e59..fc4c05cfb 100644 --- a/t/test-driver-custom-multitest-recheck.sh +++ b/t/test-driver-custom-multitest-recheck.sh @@ -86,13 +86,13 @@ $AUTOMAKE -a do_recheck () { case $* in - --fail) on_bad_rc='&&';; - --pass) on_bad_rc='||';; + --fail) status=FAIL;; + --pass) status=0;; *) fatal_ "invalid usage of function 'do_recheck'";; esac rm -f *.run - eval "\$MAKE recheck >stdout $on_bad_rc { cat stdout; ls -l; exit 1; }; :" - cat stdout; ls -l + run_make -O -e $status recheck || { ls -l; exit 1; } + ls -l } for vpath in : false; do @@ -120,8 +120,7 @@ for vpath in : false; do count_test_results total=0 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=0 : Run the tests for the first time. - $MAKE check >stdout && { cat stdout; exit 1; } - cat stdout + run_make -O -e FAIL check ls -l # All the test scripts should have run. test -f a.run diff --git a/t/test-driver-custom-multitest-recheck2.sh b/t/test-driver-custom-multitest-recheck2.sh index b00966bb7..eee7a641f 100644 --- a/t/test-driver-custom-multitest-recheck2.sh +++ b/t/test-driver-custom-multitest-recheck2.sh @@ -81,9 +81,9 @@ for vpath in : false; do $srcdir/configure + : Run the tests for the first time. - run_make check >stdout && { cat stdout; exit 1; } - cat stdout + run_make -O -e FAIL check # All the test scripts should have run. test -f a.run test -f b.run @@ -101,9 +101,7 @@ for vpath in : false; do test ! -e c.run : a.test was successful the first time, no need to re-run it. - run_make TESTS=a.test recheck >stdout || { cat stdout; exit 1; } - - cat stdout + run_make -O TESTS=a.test recheck count_test_results total=0 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=0 test ! -e a.run test ! -e b.run @@ -111,9 +109,7 @@ for vpath in : false; do : b.test failed, it should be re-run. And make it pass this time. echo OK > b.ok - run_make TESTS=b recheck >stdout \ - || { cat stdout; exit 1; } - cat stdout + run_make -O TESTS=b recheck test ! -e a.run test -f b.run test ! -e c.run @@ -122,16 +118,12 @@ for vpath in : false; do rm -f *.run : No need to re-run a.test or b.test anymore. - run_make TESTS=b recheck >stdout \ - || { cat stdout; exit 1; } - cat stdout + run_make -O TESTS=b recheck count_test_results total=0 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=0 test ! -e a.run test ! -e b.run test ! -e c.run - run_make TESTS='a.test b.test' recheck >stdout \ - || { cat stdout; exit 1; } - cat stdout + run_make -O TESTS='a.test b.test' recheck count_test_results total=0 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=0 test ! -e a.run test ! -e b.run @@ -141,8 +133,7 @@ for vpath in : false; do : as it contained an XPASS. And this time, make it fail with : an hard error. echo dummy > c.err - run_make TESTS='a.test c' recheck >stdout && { cat stdout; exit 1; } - cat stdout + run_make -O -e FAIL TESTS='a.test c' recheck count_test_results total=1 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=1 test ! -e a.run test ! -e b.run @@ -154,9 +145,7 @@ for vpath in : false; do : This time, make it pass # Use 'echo', not ':'; see comments above for why. echo dummy > c.ok - run_make TESTS='c.test a.test' recheck >stdout \ - || { cat stdout; exit 1; } - cat stdout + run_make -O TESTS='c.test a.test' recheck count_test_results total=1 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=0 test ! -e a.run test ! -e b.run @@ -166,8 +155,7 @@ for vpath in : false; do : Nothing should be rerun anymore, as all tests have been eventually : successful. - run_make recheck >stdout || { cat stdout; exit 1; } - cat stdout + run_make -O recheck count_test_results total=0 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=0 test ! -e a.run test ! -e b.run diff --git a/t/test-driver-custom-multitest.sh b/t/test-driver-custom-multitest.sh index 7174a9d73..ea4086b25 100644 --- a/t/test-driver-custom-multitest.sh +++ b/t/test-driver-custom-multitest.sh @@ -128,8 +128,7 @@ for vpath in : false; do $srcdir/configure - $MAKE check >stdout && { cat stdout; cat test-suite.log; exit 1; } - cat stdout + run_make -O -e FAIL check || { cat test-suite.log; exit 1; } cat test-suite.log # Couple of sanity checks. These might need to be updated if the # 'trivial-test-driver' script is changed. @@ -167,10 +166,8 @@ for vpath in : false; do grep '%% pass-xpass-fail-xfail-skip-error %%' test-suite.log test $(grep -c '%% ' test-suite.log) -eq 4 - run_make TESTS='pass.t pass3-skip2-xfail.t' check >stdout \ - || { cat stdout; cat test-suite.log; exit 1; } + run_make -O TESTS='pass.t pass3-skip2-xfail.t' check cat test-suite.log - cat stdout count_test_results total=7 pass=4 fail=0 skip=2 xfail=1 xpass=0 error=0 cd $srcdir diff --git a/t/test-driver-custom-xfail-tests.sh b/t/test-driver-custom-xfail-tests.sh index 6f5498eb7..3305f4920 100644 --- a/t/test-driver-custom-xfail-tests.sh +++ b/t/test-driver-custom-xfail-tests.sh @@ -139,8 +139,7 @@ $AUTOMAKE --add-missing ./configure -$MAKE check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O check test $(grep -c '^PASS:' stdout) -eq 3 test $(grep -c '^XFAIL:' stdout) -eq 13 @@ -148,8 +147,7 @@ for dir in sub1 sub2; do cd $dir cp pass.test x1.test cp x2.test pass.test - $MAKE check >stdout && { cat stdout; exit 1; } - cat stdout + run_make -O -e FAIL check test "$(cat pass.trs)" = ":test-result: FAIL" test "$(cat x1.trs)" = ":test-result: XPASS" test "$(cat x2.trs)" = ":test-result: XFAIL" diff --git a/t/test-log.sh b/t/test-log.sh index d36fab628..655659b05 100644 --- a/t/test-log.sh +++ b/t/test-log.sh @@ -146,8 +146,7 @@ test -f global.log rm -f *.log -VERBOSE=yes $MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check VERBOSE=yes cat global.log test ! -e my.log test ! -e test-suite.log diff --git a/t/test-metadata-results.sh b/t/test-metadata-results.sh index 0981befb2..a24f49774 100644 --- a/t/test-metadata-results.sh +++ b/t/test-metadata-results.sh @@ -50,15 +50,17 @@ chmod a+x dummy-driver mk_check () { - st=0 - $MAKE check >stdout || st=$? - cat stdout + stat=0 + case $1 in + -e) stat=$2; shift 2;; + esac + run_make -O -e $stat -- check # Our dummy driver make no testsuite progress report. grep ': .*\.test' stdout && exit 1 # Nor it writes to the log files. test -s foo.log && exit 1 test -s bar.log && exit 1 - return $st + : For 'set -e'. } # This must be different from the one defined in 'test/defs', as that @@ -100,7 +102,7 @@ cat > bar <<END :test-result: SKIP :test-global-result: ERROR END -mk_check && exit 1 +mk_check -e FAIL count_test_results total=2 pass=0 fail=1 xpass=0 xfail=0 skip=1 error=0 cat > foo.test <<END @@ -119,7 +121,7 @@ END cat > bar <<END :test-global-result: PASS END -mk_check && exit 1 +mk_check -e FAIL count_test_results total=1 pass=0 fail=1 xpass=0 xfail=0 skip=0 error=0 cat > foo.test <<END @@ -147,12 +149,13 @@ cat > foo.test <<END :test-result: XPASS :test-result: ERROR END + : > bar -mk_check && exit 1 +mk_check -e FAIL count_test_results total=6 pass=1 fail=1 xpass=1 xfail=1 skip=1 error=1 cp foo.test bar -mk_check && exit 1 +mk_check -e FAIL count_test_results total=12 pass=2 fail=2 xpass=2 xfail=2 skip=2 error=2 # Check that we are liberal w.r.t. whitespace use. @@ -170,7 +173,7 @@ END done cat foo.test # For debugging. cat bar # Likewise. -mk_check && exit 1 +mk_check -e FAIL count_test_results total=30 pass=5 fail=5 xpass=5 xfail=5 skip=5 error=5 : diff --git a/t/test-missing.sh b/t/test-missing.sh index b10b4e6c1..ca7bf357d 100644 --- a/t/test-missing.sh +++ b/t/test-missing.sh @@ -35,20 +35,17 @@ $AUTOMAKE -a ./configure -$MAKE check >stdout 2>stderr && { cat stdout; cat stderr >&2; exit 1; } -cat stdout; cat stderr >&2 +run_make -O -E -e FAIL check test -f ok.log grep '^PASS: ok\.test' stdout $FGREP 'zardoz.log' stderr test ! -e test-suite.log -$MAKE TESTS='zardoz2.test' check 2>stderr && { cat stderr >&2; exit 1; } -cat stderr +run_make -E -e FAIL TESTS=zardoz2.test check $FGREP 'zardoz2.log' stderr test ! -e test-suite.log -$MAKE TESTS='zardoz3' check 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E -e FAIL TESTS=zardoz3 check $FGREP 'zardoz3.log' stderr test ! -e test-suite.log @@ -59,8 +56,7 @@ test ! -e test-suite.log $MAKE check rm -f zardoz.test -$MAKE check 2>stderr && { cat stderr >&2; exit 1; } -cat stderr >&2 +run_make -E -e FAIL check $FGREP 'zardoz.log' stderr test ! -e test-suite.log diff --git a/t/test-trs-recover.sh b/t/test-trs-recover.sh index 818155ba9..6bf455583 100644 --- a/t/test-trs-recover.sh +++ b/t/test-trs-recover.sh @@ -65,8 +65,7 @@ test ! -e baz.trs : Recreate by hand, with a failing test. rm -f foo.trs bar.trs -TEST_STATUS=1 $MAKE bar.trs baz.trs >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O TEST_STATUS=1 bar.trs baz.trs test ! -e foo.trs test -f bar.trs test -f baz.trs @@ -86,7 +85,7 @@ is_newest baz.trs stamp : ensure that also up-to-date '.trs' files are remade -- this time we : grep the "make check" output verify that. rm -f foo.trs bar.trs -TEST_STATUS=1 $MAKE check >stdout && { cat stdout; exit 1; } +run_make -O -e FAIL TEST_STATUS=1 check test -f foo.trs test -f bar.trs grep '^FAIL: foo\.test' stdout @@ -109,8 +108,7 @@ test ! -e baz.trs : Interactions with "make recheck" are OK. rm -f foo.trs bar.trs baz.log baz.trs -$MAKE recheck >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O recheck test -f foo.trs test -f bar.trs test ! -e baz.trs @@ -130,8 +128,7 @@ test -f baz.trs : '.trs' files are *not* remade. update_stamp rm -f foo.trs bar.trs test-suite.log -$MAKE test-suite.log >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O test-suite.log grep '^PASS: foo\.test' stdout grep '^PASS: bar\.test' stdout grep 'baz\.test' stdout && exit 1 @@ -152,8 +149,7 @@ test -f baz.trs rm -f foo.trs update_stamp touch bar.test -run_make AM_LAZY_CHECK=yes check >stdout || { cat stdout; exit 1; } -cat stdout +run_make -O AM_LAZY_CHECK=yes check # Check that make has updated what it needed to, but no more. test -f foo.trs is_newest bar.trs bar.test diff --git a/t/testsuite-summary-count-many.sh b/t/testsuite-summary-count-many.sh index 29220bb2e..87eb2c24d 100644 --- a/t/testsuite-summary-count-many.sh +++ b/t/testsuite-summary-count-many.sh @@ -93,7 +93,7 @@ $AUTOCONF ./configure -($MAKE check || : > make.fail) | tee stdout +($MAKE check || touch make.fail) | tee stdout test -f make.fail $PERL extract-testsuite-summary.pl stdout > summary.got diff --git a/t/testsuite-summary-reference-log.sh b/t/testsuite-summary-reference-log.sh index 813a6afc8..379f42bea 100644 --- a/t/testsuite-summary-reference-log.sh +++ b/t/testsuite-summary-reference-log.sh @@ -45,13 +45,11 @@ cd build ../configure -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check grep '^See \./my_test_suite\.log$' stdout mkdir bar -run_make TEST_SUITE_LOG=bar/bar.log check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL TEST_SUITE_LOG=bar/bar.log check grep '^See \./bar/bar\.log$' stdout cd .. @@ -71,18 +69,14 @@ $AUTOCONF --force $AUTOMAKE ./configure -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check grep '^See sub/test-suite\.log$' stdout cd sub -$MAKE check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL check grep '^See sub/test-suite\.log$' stdout cd .. -$MAKE TEST_SUITE_LOG=foo.log check >stdout && { cat stdout; exit 1; } -run_make TEST_SUITE_LOG=foo.log check >stdout && { cat stdout; exit 1; } -cat stdout +run_make -O -e FAIL TEST_SUITE_LOG=foo.log check grep '^See sub/foo\.log$' stdout : |