At Thursday 27 August 2009, Ralf Wildenhues <ralf.wildenh...@gmx.de> 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 <stefano.lattar...@gmail.com> 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 <stefano.lattar...@gmail.com> (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 <meyer...@redhat.com> 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