At Thursday 27 August 2009, Ralf Wildenhues <[email protected]>
wrote:
> * Stefano Lattarini wrote on Tue, Aug 25, 2009 at 02:18:45AM CEST:
> > If you want to err on the side of safety, you could add a warning
> > in tests/README stating not to use zsh to run the test scripts,
> > unless it's symlinked to /bin/sh or called with the
> > `--nofunctionargzero' option.
>
> Care to send a patch?
I found that the patch I sent previously had some glitches. I hope the
new one is better (see attachment).
Again, be warned that I'm not a native speaker, so my wording might
be far from perfect (or downright botched).
Regards,
Stefano
From 0098591567a7ece6a8506b589e9e0cacdf5ff698 Mon Sep 17 00:00:00 2001
From: Stefano Lattarini <[email protected]>
Date: Thu, 27 Aug 2009 20:38:07 +0200
Subject: [PATCH] tests/README: warn about zsh incompatibilities
* tests/README (User interface, Getting details from failures):
now explicitly state that every test is a "shell script", not just
a "script", and that it's run by `/bin/sh' by default.
* tests/README (User interface, Supported shells): new subsection,
telling about expected portability of the automake test scripts,
describing a zsh incompatibility (w.r.t. $0), and a workaround to
it (with the `--no-function-argzero' option).
---
ChangeLog | 11 +++++++++++
tests/README | 35 ++++++++++++++++++++++++++++-------
2 files changed, 39 insertions(+), 7 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index bab1dcb..afdc97a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2009-08-27 Stefano Lattarini <[email protected]> (tiny change)
+
+ tests/README: warn about zsh incompatibilities
+ * tests/README (User interface, Getting details from failures):
+ now explicitly state that every test is a "shell script", not just
+ a "script", and that it's run by `/bin/sh' by default.
+ * tests/README (User interface, Supported shells): new subsection,
+ telling about expected portability of the automake test scripts,
+ describing a zsh incompatibility (w.r.t. $0), and a workaround to
+ it (with the `--no-function-argzero' option).
+
2009-07-08 Jim Meyering <[email protected]>
manual: fix a trivial grammar error.
diff --git a/tests/README b/tests/README
index c4ff407..d820543 100644
--- a/tests/README
+++ b/tests/README
@@ -14,6 +14,7 @@ Running all tests
uniprocessor system, due to unavoidable sleep delays, as
noted below).
+
Interpretation
--------------
@@ -32,18 +33,38 @@ Interpretation
Getting details from failures
-----------------------------
- Each test is a script. In a non-VPATH build you can run them
- directly, they will be verbose. By default, verbose output of
- a test foo.test is retained in the log file foo.log. A summary
- log is created in the file test-suite.log.
+ Each test is a shell script, and by default is run by /bin/sh.
+ In a non-VPATH build you can run them directly, they will be verbose.
+ By default, verbose output of a test foo.test is retained in the log
+ file foo.log. A summary log is created in the file test-suite.log.
- You can limit the set of files using the TESTS variable, and
- enable detailed test output at the end of the test run with the
- VERBOSE variable:
+ You can limit the set of files using the TESTS variable, and enable
+ detailed test output at the end of the test run with the VERBOSE
+ variable:
env VERBOSE=x TESTS='first.test second.test ...' make -e check
+Supported shells
+----------------
+
+ The test scripts are written with portability in mind, so that they
+ should run an 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:
+ zsh --no-function-argzero foo.test
+
+ Note that this problem does not occur if zsh is executed through a
+ symlink with `sh' basename, since in that case it immediatly starts
+ in bourne-compatibility mode. So you should be perfectly safe even
+ having zsh as your /bin/sh.
+
+
Reporting failures
------------------
--
1.6.3.3