This patch fixes all but 9 of the 76 or so instspc*.test failures on Tru64. It is for the tests-init branch, or a tests-init-fixes on top of v1.11-395-ge118126 I guess. I'll wait a couple of days before pushing.
I haven't analyzed the failure sufficiently to be able to write a patch for autoconf.texi yet. But the very last hunk below makes me suspicious of more removals of '|| Exit 1' "just because". Thanks, Ralf tests: work around Tru64 sh -e issues for instspc*.test. Apparently, Tru64 sh does not like turning off errexit mode, and gets confused. * tests/defs: Document 'errexit' cleanliness requirement. * tests/defs-static.in: Likewise. Avoid error from command substitution to abort instspc*.test with Tru64/OSF 5.1 sh. * tests/instspc-tests.sh: Drop now-unneeded temporary errexit dropping. Add strategic '|| Exit' to let tests work on Tru64. diff --git a/tests/defs b/tests/defs index 51d2213..3113869 100644 --- a/tests/defs +++ b/tests/defs @@ -21,6 +21,8 @@ ## Source static setup and definitions for the testsuite. ## ## -------------------------------------------------------- ## +# This code needs to be 'set -e' clean. + # Ensure we are running from the right directory. test -f ./defs-static || { echo "$0: ./defs-static: not found in current directory" >&2 diff --git a/tests/defs-static.in b/tests/defs-static.in index 9143178..9016207 100644 --- a/tests/defs-static.in +++ b/tests/defs-static.in @@ -2,7 +2,8 @@ # @configure_input@ # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# 2005, 2006, 2007, 2008, 2009, 2010, 2011 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 @@ -18,7 +19,8 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # Defines and minimal setup for Automake testing environment. -# IMPORTANT: Multiple inclusions of this file should be idempotent! +# Multiple inclusions of this file should be idempotent! +# This code needs to be 'set -e' clean. # Be more Bourne compatible. # (Snippet inspired to configure's initialization in Autoconf 2.64) @@ -57,7 +59,8 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then fi else argv0=$0 - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac + # Avoid command substitution failure, for Tru64 sh -e and instspc*.test. + case `(set -o) 2>/dev/null || :` in *posix*) set -o posix;; esac fi testsrcdir='@abs_srcdir@' diff --git a/tests/instspc-tests.sh b/tests/instspc-tests.sh index 90087eb..78f40c4 100755 --- a/tests/instspc-tests.sh +++ b/tests/instspc-tests.sh @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2010 Free Software Foundation, Inc. +# Copyright (C) 2010, 2011 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 @@ -191,12 +191,8 @@ fi ### If we are still here, we have to run a test ... -# We'll need the full setup provided by `tests/defs'. Temporarly disable -# the errexit flag, since the setup code might not be prepared to deal -# with it. -set +e +# We'll need the full setup provided by `tests/defs'. . ./defs || Exit 99 -set -e eval "instspc_test_string=\${instspc__$instspc_test_name}" || Exit 99 if test x"$instspc_test_string" = x; then @@ -296,6 +292,8 @@ cd "./$build" ../configure --prefix "/$instspc_test_string-prefix" $MAKE -DESTDIR="$dest" file="$instspc_test_string" $MAKE -e test-install-sep +# Tru64 sh -e needs '|| Exit' in order to work correctly. +DESTDIR="$dest" file="$instspc_test_string" $MAKE -e test-install-sep \ + || Exit 1 :