diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-06-28 10:55:13 +0200 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-06-28 10:55:13 +0200 |
commit | 78900b933039b7001443be126b63862430ec2648 (patch) | |
tree | 9c0cb29831e19029845345be864960c79489f8c9 /t/am-missing-prog.sh | |
parent | e677ba931c0a9bb2dee3197b49b6fe088065e96c (diff) | |
download | automake-78900b933039b7001443be126b63862430ec2648.tar.gz |
coverage: tests AM_MISSING_PROG usage
Now that AM_MISSING_PROG is documented, we want to make sure it
works as expected when used in third-party code.
* t/am-missing-prog.sh: New test.
* t/ammissing: Rename ...
* t/am-macro-not-found.sh: ... like this, to avoid confusion (this
test has nothing to do with the 'missing' script nor with the
'AM_MISSING_PROG' macro).
* t/list-of-tests.mk: Adjust.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 't/am-missing-prog.sh')
-rwxr-xr-x | t/am-missing-prog.sh | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/t/am-missing-prog.sh b/t/am-missing-prog.sh new file mode 100755 index 000000000..a3e0caccb --- /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' + +: |