[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Automake-commit] [SCM] GNU Automake branch, tests-init, updated. v1.11-
From: |
Stefano Lattarini |
Subject: |
[Automake-commit] [SCM] GNU Automake branch, tests-init, updated. v1.11-431-g7cd2094 |
Date: |
Wed, 22 Dec 2010 17:13:20 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".
http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=7cd2094693437d3d7fbdb69d577758fe1d6e0900
The branch, tests-init has been updated
via 7cd2094693437d3d7fbdb69d577758fe1d6e0900 (commit)
from d40b95dca3b7b5f03b17772ad8367690d030e5e8 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 7cd2094693437d3d7fbdb69d577758fe1d6e0900
Author: Stefano Lattarini <address@hidden>
Date: Sat Jan 30 14:01:39 2010 +0100
Fix parallel testsuite run with Zsh.
This change deals with a Zsh incompatibility in the handling
of the special shell variable `$0' in sourced files; this
incompatibility used to cause utter breakage when the
Automake testsuite was run in parallel mode with Zsh as
the $(TEST_LOG_COMPILER).
For more information, please refer to the thread "Fix parallel
testsuite run with zsh" on automake-patches, dated 2010-12-22:
<http://lists.gnu.org/archive/html/automake-patches/2010-12/msg00135.html>
This change works around the problems described above for Zsh 4.3
or later, and offers better error messages (instead of random
failures) for earlier Zsh version.
* tests/README (Supported shells): When describing the manual
workaround about the Zsh incompatibility in the handling of `$0',
tell that it is now needed only with Zsh versions preceding 4.3.
Done also some minor rewordings.
* tests/defs-static.in ($argv0): New variable, offers a workaround
for the Zsh incompatibility in the handling of `$0'.
Abort if that variable cannot be correctly set (can happen only
in older Zsh version).
* tests/defs ($me): Define using `$argv0', not `$0'.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 24 ++++++++++++++++++++++++
tests/README | 20 +++++++++++---------
tests/defs | 2 +-
tests/defs-static.in | 28 +++++++++++++++++++++++++++-
4 files changed, 63 insertions(+), 11 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 378742e..2ea4caa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,29 @@
2010-12-22 Stefano Lattarini <address@hidden>
+ Fix parallel testsuite run with Zsh.
+ This change deals with a Zsh incompatibility in the handling
+ of the special shell variable `$0' in sourced files; this
+ incompatibility used to cause utter breakage when the
+ Automake testsuite was run in parallel mode with Zsh as
+ the $(TEST_LOG_COMPILER).
+ For more information, please refer to the thread "Fix parallel
+ testsuite run with zsh" on automake-patches, dated 2010-12-22:
+
<http://lists.gnu.org/archive/html/automake-patches/2010-12/msg00135.html>
+ This change works around the problems described above for Zsh 4.3
+ or later, and offers better error messages (instead of random
+ failures) for earlier Zsh version.
+ * tests/README (Supported shells): When describing the manual
+ workaround about the Zsh incompatibility in the handling of `$0',
+ tell that it is now needed only with Zsh versions preceding 4.3.
+ Done also some minor rewordings.
+ * tests/defs-static.in ($argv0): New variable, offers a workaround
+ for the Zsh incompatibility in the handling of `$0'.
+ Abort if that variable cannot be correctly set (can happen only
+ in older Zsh version).
+ * tests/defs ($me): Define using `$argv0', not `$0'.
+
+2010-12-22 Stefano Lattarini <address@hidden>
+
Tests defs: keep track of original $AUTOMAKE and $ACLOCAL values.
This is especially useful for tests which might want to run
automake and aclocal without additional flags and warnings.
diff --git a/tests/README b/tests/README
index 88da783..1369bd3 100644
--- a/tests/README
+++ b/tests/README
@@ -70,17 +70,19 @@ Supported shells
should run with any decent Bourne-compatible shell.
However, some care must be used with Zsh, since, when not directly
- starting in Bourne-compatibility mode, it has some incompatibilities
- in the handling of `$0' which conflict with our usage, and which have
- no easy workaround. Thus, if you want to run a test script, say
- foo.test, with Zsh, you *can't* simply do `zsh foo.test', but you
- *must* resort to:
+ started in Bourne-compatibility mode, it has some incompatibilities
+ in the handling of `$0' which conflict with our usage. Our testsuite
+ can automatically work around these incompatibilities when a version
+ 4.3 or later of Zsh is used, but unfortunately not when an older
+ version of Zsh is used. Thus, if you want to run a test script, say
+ foo.test, with Zsh 4.2, you *can't* simply do `zsh foo.test', but
+ you *must* resort to:
zsh -o no_function_argzero foo.test
- Note that this problem does not occur if zsh is executed through a
- symlink with a basename of `sh', since in that case it starts
- in Bourne compatibility mode. So you should be perfectly safe when
- /bin/sh is zsh.
+ Note that this problem does not occur if Zsh is executed through
+ a symlink with a basename of `sh', since in that case Zsh starts
+ in Bourne compatibility mode. So you should be perfectly safe
+ when /bin/sh is Zsh, even a it's version < 4.3.
Reporting failures
diff --git a/tests/defs b/tests/defs
index 134dc78..f04a756 100644
--- a/tests/defs
+++ b/tests/defs
@@ -30,7 +30,7 @@ test -f ./defs-static || {
. ./defs-static || exit 99
# The name of the current test (without the `.test' suffix.)
-me=`echo "$0" | sed -e 's,.*[\\/],,;s/\.test$//'`
+me=`echo "$argv0" | sed -e 's,.*[\\/],,;s/\.test$//'`
## ---------------------------------------- ##
diff --git a/tests/defs-static.in b/tests/defs-static.in
index c4ae758..9143178 100644
--- a/tests/defs-static.in
+++ b/tests/defs-static.in
@@ -21,7 +21,7 @@
# IMPORTANT: Multiple inclusions of this file should be idempotent!
# Be more Bourne compatible.
-# (Snippet copied from configure's initialization in Autoconf 2.64)
+# (Snippet inspired to configure's initialization in Autoconf 2.64)
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
emulate sh
@@ -30,7 +30,33 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null
2>&1; then
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
+ # If Zsh is not started directly in Bourne-compatibility mode, it has
+ # some incompatibilities in the handling of `$0' that conflict with
+ # our usage: i.e., `$0' inside a file sourced with the `.' builtin is
+ # temporarily set to the name of the sourced file.
+ # Work around this when possible, otherwise abort the script.
+ # Note that a bug in some versions of Zsh prevents us from resetting $0
+ # in a sourced script, so the use of $argv0. For more info see:
+ # <http://www.zsh.org/mla/workers/2009/msg01140.html>
+ # Note: the apparently useless 'eval' below are needed by at least
+ # dash 0.5.2, to prevent it from bailing out with an error like
+ # "Syntax error: Bad substitution"
+ if eval '[[ "$0" = *."test" ]]'; then
+ # Good, FUNCTION_ARGZERO option was already off when this file was
+ # sourced. Thus we've nothing to do.
+ argv0=$0
+ elif eval 'test -n "${functrace[-1]}"'; then
+ # FUNCTION_ARGZERO option was on, but we have a easy workaround.
+ eval 'argv0=${functrace[-1]%:*}'
+ else
+ # Give up.
+ echo "$0: cannot determine the path of running test script" >&2
+ echo "$0: test was running with Zsh version $ZSH_VERSION" >&2
+ echo "$0: did you enable the NO_FUNCTION_ARGZERO option?" >&2
+ exit 99
+ fi
else
+ argv0=$0
case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
fi
hooks/post-receive
--
GNU Automake
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, tests-init, updated. v1.11-431-g7cd2094,
Stefano Lattarini <=