Subject: bug#19775: Test failing after the CVE fix

From: Paul Eggert <[email-masked]>
Date: Thu, 05 Feb 2015 08:05:26 -0800

On 02/05/2015 12:54 AM, Vladimír Čunát wrote:
> The test is eXpected to fail, and it fails with assertion error, but 
> "make check" fails

Ah, you didn't show that part of the 'make' output.  'make check' should 
succeed, and does succeed on my platform (Fedora 21 x86-64). What 
platform are you running on?

Suppose you manually edit tests/Makefile, by removing the "@" from the 
triple-backref.log line, as follows.

--- Makefile~    2015-02-05 07:59:43.022516420 -0800
+++ Makefile    2015-02-05 07:59:51.559566420 -0800
@@ -2315,7 +2315,7 @@
      $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) 
$(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
      "$$tst" $(AM_TESTS_FD_REDIRECT)
  triple-backref.log: triple-backref
-    @p='triple-backref'; \
+    p='triple-backref'; \
      b='triple-backref'; \
      $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
      --log-file $$b.log --trs-file $$b.trs \

What is the relevant part of the output of "make check" then? Here's 
what it looks like for me:

...
PASS: symlink
p='triple-backref'; \
b='triple-backref'; \
case $- in *e*) set +e;; esac; srcdirstrip=`echo "." | sed 's|.|.|g'`; 
case $p in ./*) f=`echo "$p" | sed "s|^$srcdirstrip/||"`;; *) f=$p;; 
esac; { mgn= red= grn= lgn= blu= brg= std=; am__color_tests=no; if test 
"X" = Xno; then am__color_tests=no; elif test "X" = Xalways; then 
am__color_tests=yes; elif test "X$TERM" != Xdumb && { test -t 1; } 
2>/dev/null; then am__color_tests=yes; fi; if test $am__color_tests = 
yes; then red='[0;31m'; grn='[0;32m'; lgn='[1;32m'; blu='[1;34m'; 
mgn='[0;35m'; brg='[1m'; std='[m'; fi; }; srcdir=.; export srcdir; 
case "triple-backref.log" in */*) am__odir=`echo "./triple-backref.log" 
| sed 's|/[^/]*$||'`;; *) am__odir=.;; esac; test "x$am__odir" = x"." || 
test -d "$am__odir" || /usr/bin/mkdir -p "$am__odir" || exit $?; if test 
-f "./$f"; then dir=./; elif test -f "$f"; then dir=; else dir="./"; fi; 
tst=$dir$f; log='triple-backref.log'; if test -n ''; then 
am__enable_hard_errors=no; else am__enable_hard_errors=yes; fi; case " 
triple-backref equiv-classes " in *[\ \    ]$f[\ \    ]* | *[\ \    
]$dir$f[\ \    ]*) am__expect_failure=yes;; *) am__expect_failure=no;; 
esac;  tmp__=$TMPDIR; test -d "$tmp__" || tmp__=.; TMPDIR=$tmp__; export 
TMPDIR; if test -n "$BASH_VERSION" || (eval "export v=x") 2>/dev/null; 
then export_with_values () { export "$@"; }; else export_with_values () 
{ sed_extract_var='s/=.*//'; 
sed_quote_value="s/'/'\\\\''/g;s/=\\(.*\\)/='\\1'/"; for arg in "$@"; do 
var=`echo "$arg" | sed "$sed_extract_var"`; arg=`echo "$arg" | sed 
"$sed_quote_value"`; eval "$arg"; export "$var"; done; }; fi; 
export_with_values VERSION='2.21.16-846e7-dirty' LOCALE_FR='fr_FR' 
LOCALE_FR_UTF8='fr_FR.UTF-8' AWK=gawk GREP_OPTIONS='' LC_ALL=C 
abs_top_builddir='/home/eggert/src/gnu/grep' 
abs_top_srcdir='/home/eggert/src/gnu/grep' 
abs_srcdir='/home/eggert/src/gnu/grep/tests' built_programs='grep egrep 
fgrep' srcdir='.' top_srcdir='..' CC='gcc -std=gnu99' 
GREP_TEST_NAME=`echo $tst|sed 's,^\./,,;s,/,-,g'` MAKE=make 
MALLOC_PERTURB_=1 PACKAGE_BUGREPORT=[email-masked]' 
PACKAGE_VERSION=2.21.16-846e7-dirty PERL='perl' SHELL='/bin/sh' 
PATH='/home/eggert/src/gnu/grep/src:'"$PATH" ; 9>&2 /bin/sh 
../build-aux/test-driver --test-name "$f" \
--log-file $b.log --trs-file $b.trs \
--color-tests "$am__color_tests" --enable-hard-errors 
"$am__enable_hard_errors" --expect-failure "$am__expect_failure" -- 
/bin/sh   \
"$tst"
XFAIL: triple-backref
PASS: turkish-eyes
...