From: Stefano Lattarini Date: Thu, 28 Jun 2012 11:05:29 +0000 (+0200) Subject: Merge branch 'simplify-exit-trap-workaround' into maint X-Git-Tag: v1.12.2~43 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d25fac43a7c239fe8f56b2ce1b87ef3e3d4d7ef0;p=platform%2Fupstream%2Fautomake.git Merge branch 'simplify-exit-trap-workaround' into maint * simplify-exit-trap-workaround: tests: simpler workaround for shells losing the exit status in exit trap + Extra non-trivial edits: * t/am-missing-prog.sh: Use 'exit, not 'Exit'. Signed-off-by: Stefano Lattarini --- d25fac43a7c239fe8f56b2ce1b87ef3e3d4d7ef0 diff --cc t/am-missing-prog.sh index a3e0cac,0000000..6368db5 mode 100755,000000..100755 --- a/t/am-missing-prog.sh +++ b/t/am-missing-prog.sh @@@ -1,99 -1,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 . + +# Test AM_MISSING_PROG. + - . ./defs || Exit 1 ++. ./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' + +: