Merge branch 'simplify-exit-trap-workaround' into maint
authorStefano Lattarini <stefano.lattarini@gmail.com>
Thu, 28 Jun 2012 11:05:29 +0000 (13:05 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Thu, 28 Jun 2012 11:07:31 +0000 (13:07 +0200)
* 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 <stefano.lattarini@gmail.com>
1  2 
t/am-macro-not-found.sh
t/am-missing-prog.sh
t/subdir-order.sh

Simple merge
index a3e0cac,0000000..6368db5
mode 100755,000000..100755
--- /dev/null
@@@ -1,99 -1,0 +1,99 @@@
- . ./defs || Exit 1
 +#! /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'
 +
 +:
Simple merge