bug-automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: (maybe) zsh-related bug in tests/defs.in


From: Ralf Wildenhues
Subject: Re: (maybe) zsh-related bug in tests/defs.in
Date: Sun, 6 Sep 2009 13:00:46 +0200
User-agent: Mutt/1.5.20 (2009-08-09)

* Stefano Lattarini wrote on Thu, Aug 27, 2009 at 08:44:42PM CEST:
> 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).

Thanks, pushed with only minor changes to fix a few typos and liguistic
nits.  (The shell is named after Steve Bourne, its original author, so
it should be capitalized.)

Thanks!
Ralf

2009-09-06  Stefano Lattarini  <address@hidden>  (tiny change)

        tests/README: warn about zsh incompatibilities.
        * tests/README (User interface, Getting details from failures):
        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).

diff --git a/tests/README b/tests/README
index c4ff407..b264881 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 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:
+    zsh --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.
+
+
 Reporting failures
 ------------------
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]