[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Automake-ng] [FYI] [ng] tests: "make -k" can be trusted with GNU make
From: |
Stefano Lattarini |
Subject: |
[Automake-ng] [FYI] [ng] tests: "make -k" can be trusted with GNU make |
Date: |
Tue, 21 Feb 2012 16:23:56 +0100 |
* tests/check12.test: Trust exit status of "make -k".
* tests/check4.test: Likewise.
* tests/gnits2.test: Likewise.
* tests/gnits3.test: Likewise.
* tests/make-dryrun.tap: Likewise.
* tests/distlinksbrk.test: Trust that "make -k" really doesn't exit
at the first error, and prints error messages to stderr. Related
simplifications and reorganization.
---
tests/check12.test | 4 ++--
tests/check4.test | 8 +++-----
tests/distlinksbrk.test | 27 ++++++++++++++++-----------
tests/gnits2.test | 2 +-
tests/gnits3.test | 2 +-
5 files changed, 23 insertions(+), 20 deletions(-)
diff --git a/tests/check12.test b/tests/check12.test
index 1afa959..c4440ea 100755
--- a/tests/check12.test
+++ b/tests/check12.test
@@ -183,8 +183,8 @@ for vpath in : false; do
CHECKLOCAL_EXIT_STATUS=1 $MAKE check && Exit 1
grep 'check-local failed :-(' local.log
- # Do not trust the exit status of `make -k'.
- NAIL=screw B_EXIT_STATUS=23 CHECKLOCAL_EXIT_STATUS=1 $MAKE -k check || :
+ env NAIL=screw B_EXIT_STATUS=23 CHECKLOCAL_EXIT_STATUS=1 \
+ $MAKE -k check && Exit 1
test -f hammer.log
test -f hammer.sum
test -f spanner.log
diff --git a/tests/check4.test b/tests/check4.test
index 7edfa5a..f4dc592 100755
--- a/tests/check4.test
+++ b/tests/check4.test
@@ -55,15 +55,13 @@ cat stdout
grep '^FAIL: fail\.sh *$' stdout
grep '^PASS: ok\.sh *$' stdout && Exit 1
-# The exit status of `make -k' can be anything
-# (depending on the Make implementation)
-$MAKE -k check >stdout || :
+$MAKE -k check >stdout && { cat stdout; Exit 1; }
cat stdout
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 || :
+$MAKE -s -k check >stdout && { cat stdout; Exit 1; }
cat stdout
grep '^FAIL: fail\.sh *' stdout
grep '^PASS: ok\.sh *' stdout
@@ -71,7 +69,7 @@ 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 || :
+$MAKE --no-print-directory -k check >stdout && { cat stdout; Exit 1; }
cat stdout
grep '^FAIL: fail\.sh *$' stdout
grep '^PASS: ok\.sh *$' stdout
diff --git a/tests/distlinksbrk.test b/tests/distlinksbrk.test
index 8dcd81e..7d1926b 100755
--- a/tests/distlinksbrk.test
+++ b/tests/distlinksbrk.test
@@ -48,21 +48,26 @@ cat >> configure.in <<'END'
AC_OUTPUT
END
+cat > Makefile.am <<END
+EXTRA_DIST = $lnk1 $lnk2 $lnka $lnkb
+END
+
$ACLOCAL
$AUTOCONF
+$AUTOMAKE
+./configure
ls -l # For debugging.
-# Don't try to use "make -k", because some botched make implementations
-# (HP-UX, IRIX) might still exit on the first error in this situations.
-for lnk in $lnk1 $lnk2 $lnka $lnkb; do
- echo "EXTRA_DIST = $lnk" > Makefile.am
- $AUTOMAKE
- ./configure
- # Distribution must fail, with a decent error message.
- $MAKE distdir >out 2>&1 && { cat out; Exit 1; }
- cat out
- $FGREP $lnk out
-done
+# Distribution must fail.
+$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
+$FGREP $lnk1 stderr
+$FGREP $lnk2 stderr
+$FGREP $lnka stderr
+$FGREP $lnkb stderr
:
diff --git a/tests/gnits2.test b/tests/gnits2.test
index d65586f..97028f2 100755
--- a/tests/gnits2.test
+++ b/tests/gnits2.test
@@ -107,7 +107,7 @@ cd build
../configure "--prefix=`pwd`/../inst-dir" --program-prefix=p
$MAKE all
$MAKE test-install
-$MAKE -k installcheck 2>stderr || : # Never trust the exit status of make -k.
+$MAKE -k installcheck 2>stderr && { cat stderr >&2; Exit 1; }
cat stderr >&2
$MAKE grep-stderr
diff --git a/tests/gnits3.test b/tests/gnits3.test
index 17ab6f0..35c2b0c 100755
--- a/tests/gnits3.test
+++ b/tests/gnits3.test
@@ -87,7 +87,7 @@ cd build
$MAKE
$MAKE install
$MAKE installcheck && Exit 1
-$MAKE -k installcheck 2>stderr || : # Never trust the exit status of make -k.
+$MAKE -k installcheck 2>stderr && { cat stderr >&2; Exit 1; }
cat stderr >&2
$MAKE grep-stderr
--
1.7.9
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-ng] [FYI] [ng] tests: "make -k" can be trusted with GNU make,
Stefano Lattarini <=