Thanks for reporting that. I can't reproduce the bug here but I think I see why it's happening; grep is working but the test case is incorrect on some platforms. I installed the attached patch and am boldly marking the bug as fixed. (I see now that the commit's ChangeLog entry isn't quite right, but this is not worth fixing at this point.) Please give this a try. If it doesn't fix the bug we can remove the mark.
>From 1e4d870a032f8edb99c359feb666aba2467edc0f Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Mon, 11 Jan 2016 11:30:56 -0800
Subject: [PATCH] * tests/pcre-count: Don't assume the page size is 32kB.

---
 tests/pcre-count | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/tests/pcre-count b/tests/pcre-count
index 4bcb2b3..e638635 100755
--- a/tests/pcre-count
+++ b/tests/pcre-count
@@ -13,11 +13,17 @@ require_pcre_
 
 fail=0
 
-printf 'a\n%032768d\nb\0\n%032768d\na\n' 0 0 > in
+printf 'a\n%032768d\nb\0\n%032768d\na\n' 0 0 > in || framework_failure_
 
-LC_ALL=C grep -P 'a' in | wc -l > exp
+# grep will discover that the input is a binary file sooner if the
+# page size is larger, so allow for either possible output.
+printf 'a\nBinary file in matches\n' >exp1a || framework_failure_
+printf 'Binary file in matches\n' >exp1b || framework_failure_
+LC_ALL=C grep -P 'a' in >out || fail=1
+compare exp1a out || compare exp1b out || fail=1
 
-LC_ALL=C grep -Pc 'a' in > out ||  fail=1
-compare exp out || fail=1
+printf '2\n' >exp2 || framework_failure_
+LC_ALL=C grep -Pc 'a' in >out || fail=1
+compare exp2 out || fail=1
 
 Exit $fail
-- 
2.5.0

Reply via email to