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