Can you please also try the attached patch?
It's needed regardless, and I think it may attack
some failures being reported for FreeBSD and MacOS X.
I've pushed this to autoconf master as:

http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=16126bc4302f2cb1b4bd06ca7d7da31d2f82156a
From 449ba82926d076abaf344d999ef0ab1fdad04040 Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Tue, 6 Mar 2012 22:56:39 -0800
Subject: [PATCH] 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:
<http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00032.html>
<http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00035.html>
<http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00036.html>
<http://lists.gnu.org/archive/html/bug-autoconf/2012-03/msg00044.html>
---
 tests/local.at |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/tests/local.at b/tests/local.at
index cce24f0..eb01cc0 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])
 
-- 
1.7.6.5

Reply via email to