-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 According to Ralf Wildenhues on 7/12/2009 9:10 AM: > Without my patch and with zsh 4.3.4, > CONFIG_SHELL=/bin/zsh /bin/zsh ./testsuite -k parallel > > leads to a bunch of failures like this: > > @@ -0,0 +1 @@ > +set: can't change option: -m > micro-suite.log: > sed: can't read micro-suite.log: No such file or directory > 170. autotest.at:1005: 170. parallel test execution (autotest.at:1005): > FAILED (autotest.at:1064) > > With my patch, the parallel tests are all ok (i.e., pass not skip), > except for "parallel syntax error" which is skipped. > > So sorry for the mis-analysis; this zsh version warns about 'set -m' but > it has exit status 0, and the tests come out correctly too. So no, I > don't think the mkfifo needs the same treatment.
OK, so some time in the past, zsh ignored 'set -m' in subshells, but managed to track jobs; then at least zsh 4.3.9 and 4.3.10 changed things where it is completely broken, but the latest CVS zsh (also available as a git repo) is responding to my bug report by adding a new option POSIX_JOBS which appears on the surface to be a step in the right direction. I still need to test the latest zsh with the autoconf testsuite, so hopefully I can get to that soon. At any rate, your patch makes sense in that light (we're ignoring a verbose shell that otherwise manages to get through the testsuite, rather than worrying about an exit status of 77). But I will also commit this to make things more obvious: - -- Don't work too hard, make some time for fun as well! Eric Blake [email protected] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Cygwin) Comment: Public key at home.comcast.net/~ericblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkpcBeoACgkQ84KuGfSFAYClzwCgx4HAh0LPJJMMoQ1Y2jIi3T8o lGwAoIt4ZiATR2nbffYr7Yz1oPvLjwnx =8zPU -----END PGP SIGNATURE-----
>From 2b5b0dda48597bae5f21209ed015cc0cad61ed24 Mon Sep 17 00:00:00 2001 From: Eric Blake <[email protected]> Date: Mon, 13 Jul 2009 22:03:27 -0600 Subject: [PATCH] Guarantee that exit status trumps output matching. * doc/autoconf.texi (Writing Testsuites) <AT_CHECK>: Document this better. * tests/autotest.at (Skip, parallel skip): Enhance tests. Signed-off-by: Eric Blake <[email protected]> --- ChangeLog | 5 +++++ doc/autoconf.texi | 3 ++- tests/autotest.at | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f8df09e..37b7b15 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2009-07-13 Eric Blake <[email protected]> + Guarantee that exit status trumps output matching. + * doc/autoconf.texi (Writing Testsuites) <AT_CHECK>: Document this + better. + * tests/autotest.at (Skip, parallel skip): Enhance tests. + Fix nits in recent patches. * configure.ac (ac_cv_dir_trailing_space): Avoid $status, for zsh. diff --git a/doc/autoconf.texi b/doc/autoconf.texi index aa6ceba..a4aed6f 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -22750,7 +22750,8 @@ Writing Testsuites parameter is treated as text that must exactly match the output given by @var{commands} on standard out and standard error (including an empty parameter for no output); any differences are captured in the testsuite -log and the test is failed. The difference between @code{AT_CHECK} and +log and the test is failed (unless an unexpected exit status of 77 +skipped the test instead). The difference between @code{AT_CHECK} and @code{AT_CHECK_UNQUOTED} is that only the latter performs shell variable expansion (@samp{$}), command substitution (@samp{`}), and backslash escaping (@samp{\}) on comparison text given in the @var{stdout} and diff --git a/tests/autotest.at b/tests/autotest.at index 0063c4a..57382ca 100644 --- a/tests/autotest.at +++ b/tests/autotest.at @@ -259,7 +259,7 @@ AT_CHECK_AT_TEST([Fallacy], [AT_CHECK([grep failed micro-suite.log], [], [ignore])]) AT_CHECK_AT_TEST([Skip], - [AT_CHECK([exit 77], 0, [], [])], + [AT_CHECK([echo output; echo irrelevant >&2; exit 77], 0, [mismatch], [])], [], [], [], [], [], [AT_CHECK([grep skipped micro-suite.log], [], [ignore])]) @@ -1155,7 +1155,7 @@ AT_CHECK_AT_TEST([parallel fallacy], [AT_CHECK([grep failed micro-suite.log], [], [ignore])], [-j]) AT_CHECK_AT_TEST([parallel skip], - [AT_CHECK([exit 77], 0, [], [])], + [AT_CHECK([echo output; echo irrelevant >&2; exit 77], 0, [mismatch], [])], [], [], [], [], [AT_SKIP_PARALLEL_TESTS], [AT_CHECK([grep skipped micro-suite.log], [], [ignore])], [-j]) -- 1.6.3.3.334.g916e1
