All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: John Keeping <john@keeping.me.uk>
Cc: Jeff King <peff@peff.net>,
	Eric Sunshine <sunshine@sunshineco.com>,
	Git List <git@vger.kernel.org>
Subject: Re: [PATCH 1/2] t8005: avoid grep on non-ASCII data
Date: Tue, 23 Feb 2016 15:01:43 -0800	[thread overview]
Message-ID: <xmqqegc3xc88.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20160221234135.GA14382@river.lan> (John Keeping's message of "Sun, 21 Feb 2016 23:41:35 +0000")

John Keeping <john@keeping.me.uk> writes:

> My original sed version was:
>
> 	sed -ne "/^author /p" -e "/^summary /p"
>
> which I think will work on all platforms (we already use it in
> t0000-basic.sh) but then I decided to be too clever :-(
>
> I still think sed is simpler than introducing a new function to wrap a
> perl script.

Let's do this, before everybody forgets what we discussed.

-- >8 --
From: John Keeping <john@keeping.me.uk>
Date: Sun, 21 Feb 2016 17:32:21 +0000
Subject: [PATCH] t8005: avoid grep on non-ASCII data

GNU grep 2.23 detects the input used in this test as binary data so it
does not work for extracting lines from a file.  We could add the "-a"
option to force grep to treat the input as text, but not all
implementations support that.  Instead, use sed to extract the desired
lines since it will always treat its input as text.

While touching these lines, modernize the test style to avoid hiding the
exit status of "git blame" and remove a space following a redirection
operator.  Also swap the order of the expected and actual output
files given to test_cmp; we compare expect and actual to show how
actual output differs from what is expected.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 t/t8005-blame-i18n.sh | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/t/t8005-blame-i18n.sh b/t/t8005-blame-i18n.sh
index 847d098..75da219 100755
--- a/t/t8005-blame-i18n.sh
+++ b/t/t8005-blame-i18n.sh
@@ -33,11 +33,15 @@ author $SJIS_NAME
 summary $SJIS_MSG
 EOF
 
+filter_author_summary () {
+	sed -n -e '/^author /p' -e '/^summary /p' "$@"
+}
+
 test_expect_success !MINGW \
 	'blame respects i18n.commitencoding' '
-	git blame --incremental file | \
-		egrep "^(author|summary) " > actual &&
-	test_cmp actual expected
+	git blame --incremental file >output &&
+	filter_author_summary output >actual &&
+	test_cmp expected actual
 '
 
 cat >expected <<EOF
@@ -52,9 +56,9 @@ EOF
 test_expect_success !MINGW \
 	'blame respects i18n.logoutputencoding' '
 	git config i18n.logoutputencoding eucJP &&
-	git blame --incremental file | \
-		egrep "^(author|summary) " > actual &&
-	test_cmp actual expected
+	git blame --incremental file >output &&
+	filter_author_summary output >actual &&
+	test_cmp expected actual
 '
 
 cat >expected <<EOF
@@ -68,9 +72,9 @@ EOF
 
 test_expect_success !MINGW \
 	'blame respects --encoding=UTF-8' '
-	git blame --incremental --encoding=UTF-8 file | \
-		egrep "^(author|summary) " > actual &&
-	test_cmp actual expected
+	git blame --incremental --encoding=UTF-8 file >output &&
+	filter_author_summary output >actual &&
+	test_cmp expected actual
 '
 
 cat >expected <<EOF
@@ -84,9 +88,9 @@ EOF
 
 test_expect_success !MINGW \
 	'blame respects --encoding=none' '
-	git blame --incremental --encoding=none file | \
-		egrep "^(author|summary) " > actual &&
-	test_cmp actual expected
+	git blame --incremental --encoding=none file >output &&
+	filter_author_summary output >actual &&
+	test_cmp expected actual
 '
 
 test_done
-- 
2.7.2-532-g79873b4

  parent reply	other threads:[~2016-02-23 23:01 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-07 16:25 Test failures with GNU grep 2.23 John Keeping
2016-02-19 11:59 ` Jeff King
2016-02-19 17:27   ` Eric Sunshine
2016-02-19 17:38   ` Junio C Hamano
2016-02-19 19:11     ` Jeff King
2016-02-19 19:23     ` John Keeping
2016-02-19 19:33       ` Jeff King
2016-02-21 17:32         ` [PATCH 0/2] Fix test " John Keeping
2016-02-21 17:32           ` [PATCH 1/2] t8005: avoid grep on non-ASCII data John Keeping
2016-02-21 21:01             ` Eric Sunshine
2016-02-21 23:19               ` Jeff King
2016-02-21 23:31                 ` Eric Sunshine
2016-02-21 23:35                   ` Jeff King
2016-02-21 23:41                 ` John Keeping
2016-02-21 23:50                   ` Eric Sunshine
2016-02-22 22:18                   ` Jeff King
2016-02-22 22:25                     ` Junio C Hamano
2016-02-23 23:01                   ` Junio C Hamano [this message]
2016-02-24 10:24                     ` John Keeping
2016-02-21 23:31               ` Junio C Hamano
2016-02-21 23:40                 ` Eric Sunshine
2016-02-21 17:32           ` [PATCH 2/2] t9200: " John Keeping
2016-02-21 21:15             ` Eric Sunshine
2016-02-21 23:43               ` John Keeping
2016-02-22  0:04                 ` Eric Sunshine
2016-02-22 22:25                 ` Jeff King
2016-02-23 22:55                   ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqqegc3xc88.fsf@gitster.mtv.corp.google.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=john@keeping.me.uk \
    --cc=peff@peff.net \
    --cc=sunshine@sunshineco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.