git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Test failures with GNU grep 2.23

From
John Keeping <john@keeping.me.uk>
Date
Feb 7, 2016, 16:25 UTC
Message-ID
<20160207162540.GK29880@serenity.lan>

It seems that binary file detection has changed in GNU grep 2.23 as a result of commit 40ed879 (grep: fix bug with with invalid unibyte sequence).

This causes a couple of test failures in t8005 and t9200 (the t9200 case is less obvious so I'm only including t8005 here):

-- >8 --
$ ./t8005-blame-i18n.sh -v -i
[snip]
expecting success: 
        git blame --incremental file | \
                egrep "^(author|summary) " > actual &&
        test_cmp actual expected

--- actual 2016-02-07 16:14:55.372510307 +0000 +++ expected 2016-02-07 16:14:55.359510341 +0000

@@ -1 +1,6 @@
-Binary file (standard input) matches
+author �R�c ���Y
+summary �u���[���̃e�X�g�ł��B
+author �R�c ���Y
+summary �u���[���̃e�X�g�ł��B
+author �R�c ���Y
+summary �u���[���̃e�X�g�ł��B
not ok 2 - blame respects i18n.commitencoding
#
#               git blame --incremental file | \
#                       egrep "^(author|summary) " > actual &&
#               test_cmp actual expected
#
-- 8< --

The following patch fixes the tests for me, but I wonder if "-a" is
supported on all target platforms (it's not in POSIX, which specifies
that the "input files shall be text files") or whether we should do
something more comprehensive to provide sane_{e,f,}grep which guarantee
to treat input as text.

I also tried setting POSIXLY_CORRECT but that doesn't affect the
text/binary decision.

-- >8 --
diff --git a/t/t8005-blame-i18n.sh b/t/t8005-blame-i18n.sh
index 847d098..3b6e697 100755
--- a/t/t8005-blame-i18n.sh
+++ b/t/t8005-blame-i18n.sh
@@ -36,7 +36,7 @@ EOF
 test_expect_success !MINGW \
 	'blame respects i18n.commitencoding' '
 	git blame --incremental file | \
-		egrep "^(author|summary) " > actual &&
+		egrep -a "^(author|summary) " > actual &&
 	test_cmp actual expected
 '
 
@@ -53,7 +53,7 @@ test_expect_success !MINGW \
 	'blame respects i18n.logoutputencoding' '
 	git config i18n.logoutputencoding eucJP &&
 	git blame --incremental file | \
-		egrep "^(author|summary) " > actual &&
+		egrep -a "^(author|summary) " > actual &&
 	test_cmp actual expected
 '
 
@@ -69,7 +69,7 @@ EOF
 test_expect_success !MINGW \
 	'blame respects --encoding=UTF-8' '
 	git blame --incremental --encoding=UTF-8 file | \
-		egrep "^(author|summary) " > actual &&
+		egrep -a "^(author|summary) " > actual &&
 	test_cmp actual expected
 '
 
@@ -85,7 +85,7 @@ EOF
 test_expect_success !MINGW \
 	'blame respects --encoding=none' '
 	git blame --incremental --encoding=none file | \
-		egrep "^(author|summary) " > actual &&
+		egrep -a "^(author|summary) " > actual &&
 	test_cmp actual expected
 '
 
diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
index 5cfb9cf..f05578a 100755
--- a/t/t9200-git-cvsexportcommit.sh
+++ b/t/t9200-git-cvsexportcommit.sh
@@ -35,7 +35,7 @@ exit 1
 
 check_entries () {
 	# $1 == directory, $2 == expected
-	grep '^/' "$1/CVS/Entries" | sort | cut -d/ -f2,3,5 >actual
+	grep -a '^/' "$1/CVS/Entries" | sort | cut -d/ -f2,3,5 >actual
 	if test -z "$2"
 	then
 		>expected
Next: Jeff King
Message 1 of 27 in “Test failures with GNU grep 2.23”
  1. John KeepingFeb 7, 2016
  2. Jeff KingFeb 19, 2016
  3. Eric SunshineFeb 19, 2016
  4. Junio C HamanoFeb 19, 2016
  5. Jeff KingFeb 19, 2016
  6. John KeepingFeb 19, 2016
  7. Jeff KingFeb 19, 2016
  8. 0/2 Fix test failures with GNU grep 2.23John Keeping, Feb 21, 2016
  9. 1/2 t8005: avoid grep on non-ASCII dataJohn Keeping, Feb 21, 2016
  10. Eric SunshineFeb 21, 2016
  11. Jeff KingFeb 21, 2016
  12. Eric SunshineFeb 21, 2016
  13. Jeff KingFeb 21, 2016
  14. John KeepingFeb 21, 2016
  15. Eric SunshineFeb 21, 2016
  16. Jeff KingFeb 22, 2016
  17. Junio C HamanoFeb 22, 2016
  18. Junio C HamanoFeb 23, 2016
  19. John KeepingFeb 24, 2016
  20. Junio C HamanoFeb 21, 2016
  21. Eric SunshineFeb 21, 2016
  22. 2/2 t9200: avoid grep on non-ASCII dataJohn Keeping, Feb 21, 2016
  23. Eric SunshineFeb 21, 2016
  24. John KeepingFeb 21, 2016
  25. Eric SunshineFeb 22, 2016
  26. Jeff KingFeb 22, 2016
  27. Junio C HamanoFeb 23, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.