diff options
Diffstat (limited to 't')
-rwxr-xr-x | t/am-macro-not-found.sh (renamed from t/ammissing.sh) | 0 | ||||
-rwxr-xr-x | t/am-missing-prog.sh | 99 | ||||
-rw-r--r-- | t/list-of-tests.mk | 3 | ||||
-rw-r--r-- | t/subdir-order.sh | 14 |
4 files changed, 114 insertions, 2 deletions
diff --git a/t/ammissing.sh b/t/am-macro-not-found.sh index 038dabfe9..038dabfe9 100755 --- a/t/ammissing.sh +++ b/t/am-macro-not-found.sh diff --git a/t/am-missing-prog.sh b/t/am-missing-prog.sh new file mode 100755 index 000000000..6368db5ba --- /dev/null +++ b/t/am-missing-prog.sh @@ -0,0 +1,99 @@ +#! /bin/sh +# Copyright (C) 2003-2012 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Test AM_MISSING_PROG. + +. ./defs || exit 1 + +cat >> configure.ac <<'END' +AM_MISSING_PROG([NO_SUCH_COMMAND], [am-none-none]) +AM_MISSING_PROG([MISMATCHED_COMMAND], [am-exit-63]) +AM_MISSING_PROG([OVERRIDDEN_COMMAND], [am-none-none]) +AM_MISSING_PROG([COMMAND_FOUND], [my-command]) +AC_OUTPUT +END + +mkdir bin +cat > bin/am-exit-63 <<'END' +#!/bin/sh +echo "Oops, I'm too old" +exit 63 +END +cat > bin/am-overridden <<'END' +#!/bin/sh +echo "Hey, I'm OK!" +exit 0 +END +cat > bin/my-command <<'END' +#!/bin/sh +echo SNAFU +exit 0 +END +chmod a+x bin/* +PATH=$(pwd)/bin$PATH_SEPARATOR$PATH; export PATH + +cat > Makefile.am <<'END' +# Different for different targets, for the sake of parallel make. +o = $@-stdout +e = $@-stderr + +debug_info = grep . $@-stdout $@-stderr +status_is = $(debug_info); echo $@: st=$$st; : test $$st -eq + +w_mis = 'am-none-none' is needed, and is missing on your system +w_old = 'am-exit-63' is needed, and is probably too old + +# FIXME: make this test stricter w.r.t. the exit statuses once +# FIXME: we are merged to master! +test1: + st=0; $(NO_SUCH_COMMAND) >$o 2>$e || st=$$?; $(status_is) 127 + grep "^WARNING: $(w_mis)" $e + test ! -s $o +test2: + st=0; $(MISMATCHED_COMMAND) >$o 2>$e || st=$$?; $(status_is) 63 + grep "^WARNING: $(w_old)" $e + test "`cat $o`" = "Oops, I'm too old" +test3: + st=0; $(OVERRIDDEN_COMMAND) >$o 2>$e || st=$$?; $(status_is) 0 + st=0; $(OVERRIDDEN_COMMAND) >$o 2>$e || st=$$?; \ + test ! -s $e + test "`cat $o`" = "Hey, I'm OK!" +test4: + st=0; $(COMMAND_FOUND) >$o 2>$e || st=$$?; $(status_is) 0 + test ! -s $e + test "`cat $o`" = SNAFU +check-local: test1 test2 test2 test4 +.PHONY: test1 test2 test2 test4 +CLEANFILES = test[1234]-stdout test[1234]-stderr +END + +$ACLOCAL +$AUTOCONF +$AUTOMAKE + +./configure OVERRIDDEN_COMMAND=am-overridden + +$FGREP COMMAND Makefile.in Makefile # For debugging. + +grep "^NO_SUCH_COMMAND = \${SHELL} .*/missing .*am-none-none" Makefile +grep "^MISMATCHED_COMMAND = \${SHELL} .*/missing .*am-exit-63" Makefile +grep "^COMMAND_FOUND = \${SHELL} .*/missing .*my-command" Makefile +grep '^OVERRIDDEN_COMMAND = am-overridden *$' Makefile + +$MAKE test1 test2 test3 test4 +$MAKE distcheck DISTCHECK_CONFIGURE_FLAGS='OVERRIDDEN_COMMAND=am-overridden' + +: diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk index e16dd1d3a..5967fcb5a 100644 --- a/t/list-of-tests.mk +++ b/t/list-of-tests.mk @@ -125,7 +125,7 @@ t/amhello-cross-compile.sh \ t/amhello-binpkg.sh \ t/aminit-moreargs-deprecation.sh \ t/amassign.sh \ -t/ammissing.sh \ +t/am-macro-not-found.sh \ t/amopt.sh \ t/amopts-location.sh \ t/amopts-variable-expansion.sh \ @@ -686,6 +686,7 @@ t/missing3.sh \ t/missing4.sh \ t/missing5.sh \ t/missing6.sh \ +t/am-missing-prog.sh \ t/missing-auxfile-stops-makefiles-creation.sh \ t/mkdirp-deprecation.sh \ t/mkinstall.sh \ diff --git a/t/subdir-order.sh b/t/subdir-order.sh index 7a84b34bf..0ce19d937 100644 --- a/t/subdir-order.sh +++ b/t/subdir-order.sh @@ -124,6 +124,17 @@ all-local: : > run END +echo dummy: > Makefile +if using_gmake; then + jobs=-j12 +elif $MAKE -j12; then + jobs=-j12 +elif $MAKE -j 12; then + jobs="-j 12" +else + jobs=none +fi +rm -f Makefile $ACLOCAL $AUTOCONF @@ -131,7 +142,8 @@ $AUTOMAKE -c --add-missing ./configure -for j in '' -j12; do +for j in '' "$jobs"; do + test x"$j" = x"none" && continue $MAKE $j test -f run test -f sub0/run |