-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 According to Ralf Wildenhues on 3/30/2009 12:58 PM:
Hi Ralf, > * Eric Blake wrote on Mon, Mar 30, 2009 at 07:09:34PM CEST: >> Double-check that zsh is always in sh mode: >> http://lists.gnu.org/archive/html/autoconf-patches/2008-11/msg00116.html > > This one is easy: apparently zsh doesn't unset the $argv array nor the > $ARGC variable when it encounters `emulate sh'. However, when sh is > (symlinked to) zsh and started as sh, then it does not ever populate > these variables, which may help explain why we haven't seen this before. > > One fix could be to just ignore those two variables in AT_CHECK_ENV. Good idea. I'm pushing this. I'm also looking at a way to make autoconf's testsuite much smaller, by factoring AT_CHECK_ENV and AC_SAVE_STATE into reused contents rather than repeatedly emitting them. - -- 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 iEYEARECAAYFAknRmZwACgkQ84KuGfSFAYDDzwCeJYZEuLjCpglCwo/CwHaGWG16 SS8An0BxAV5hb6ZOmGvjmhNJ7Ob+Bkka =lt7+ -----END PGP SIGNATURE-----
>From e7399cdcce9ef10d80bd010376c706358adf6fe5 Mon Sep 17 00:00:00 2001 From: Eric Blake <[email protected]> Date: Mon, 30 Mar 2009 13:28:02 -0600 Subject: [PATCH] Fix testsuite failures under zsh. * tests/local.at (AT_CHECK_ENV): Exempt $argv and $ARGC, which are set by zsh -c 'emulate sh'. Reported by Ralf Wildenhues. Signed-off-by: Eric Blake <[email protected]> --- ChangeLog | 5 +++++ tests/local.at | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 43a2f56..ac19a64 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2009-03-30 Eric Blake <[email protected]> + Fix testsuite failures under zsh. + * tests/local.at (AT_CHECK_ENV): Exempt $argv and $ARGC, which are + set by zsh -c 'emulate sh'. + Reported by Ralf Wildenhues. + For now, skip parallel tests under less-tested shells. * tests/autotest.at (AT_CHECK_AT): Add pre-test argument. (Tested programs, Startup error messages, AT_CHECK_AT_TITLE) diff --git a/tests/local.at b/tests/local.at index dffeebf..fd451d1 100644 --- a/tests/local.at +++ b/tests/local.at @@ -295,7 +295,7 @@ m4_define([AT_CHECK_CONFIGURE], # Set by AC_OUTPUT. # - AC_SUBST'ed variables # (FIXME: Generate a list of these automatically.) -# - _|@|.[*#?$].|LINENO|OLDPWD|PIPESTATUS|RANDOM|SECONDS +# - _|@|.[*#?$].|argv|ARGC|LINENO|OLDPWD|PIPESTATUS|RANDOM|SECONDS # Some variables some shells use and change. # `.[*#?$].' catches `$#' etc. which are displayed like this: # | '!'=18186 @@ -330,7 +330,8 @@ if test -f state-env.before && test -f state-env.after; then [ALLOCA|GETLOADAVG_LIBS|KMEM_GROUP|NEED_SETGID|POW_LIB], [AWK|LEX|LEXLIB|LEX_OUTPUT_ROOT|LN_S|M4|MKDIR_P|RANLIB|SET_MAKE|YACC], [GREP|[EF]GREP|SED], - [...@]|.[*#?$].|LINENO|OLDPWD|PIPESTATUS|RANDOM|SECONDS]))=' \ + [...@]|.[*#?$].], + [argv|ARGC|LINENO|OLDPWD|PIPESTATUS|RANDOM|SECONDS]))=' \ $act_file 2>/dev/null | # There may be variables spread on several lines; remove latter lines. $GREP '^m4_defn([m4_re_word])=' >clean-$act_file -- 1.6.1.2
