From 449ba82926d076abaf344d999ef0ab1fdad04040 Mon Sep 17 00:00:00 2001
From: Paul Eggert
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:
---
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],
address@hidden|.[*#?$].],
[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