From: Paul Eggert Date: Wed, 7 Mar 2012 06:56:39 +0000 (-0800) Subject: tests: port AT_CHECK_ENV to hosts with flaky grep X-Git-Tag: v2.69~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=16126bc4302f2cb1b4bd06ca7d7da31d2f82156a;p=thirdparty%2Fautoconf.git tests: port AT_CHECK_ENV to hosts with flaky grep * tests/local.at (AT_CHECK_ENV): Don't assume that if one grep fails, the other will too. It could be that 'grep' is flaky, and fails somewhat at random. This would explain the problems reported for autoconf-2.68b on FreeBSD and MacOS X, for example: --- diff --git a/tests/local.at b/tests/local.at index cce24f00..eb01cc0a 100644 --- a/tests/local.at +++ b/tests/local.at @@ -297,9 +297,10 @@ test -f state-ls.after \ # Compare variable space dumps. if test -f state-env.before && test -f state-env.after; then set +x + grep_failed=false for act_file in state-env.before state-env.after do - $EGREP -v '^(m4_join([|], + ($EGREP -v '^(m4_join([|], [a[cs]_.*], [(exec_)?prefix|DEFS|CONFIG_STATUS], [CC|CFLAGS|CPP|GCC|CXX|CXXFLAGS|CXXCPP|GXX|F77|FFLAGS|FLIBS|G77], @@ -323,12 +324,19 @@ if test -f state-env.before && test -f state-env.after; then [GREP|[EF]GREP|SED], [[_@]|.[*#?$].], [argv|ARGC|LINENO|OLDPWD|PIPESTATUS|RANDOM|SECONDS]))=' \ - $act_file 2>/dev/null | + $act_file || + test $? -eq 1 || echo failed >&2 + ) 2>stderr-$act_file | # There may be variables spread on several lines; remove latter lines. - $GREP '^m4_defn([m4_re_word])=' >clean-$act_file + $GREP '^m4_defn([m4_re_word])=' >clean-$act_file || + test $? -eq 1 || grep_failed=: + if test -s stderr-$act_file; then + cat stderr-$act_file >&2 + grep_failed=: + fi done $at_traceon - $at_diff clean-state-env.before clean-state-env.after + $grep_failed || $at_diff clean-state-env.before clean-state-env.after fi } [#]at_check_env])