Re: [PATCH 1/2] t8005: avoid grep on non-ASCII data
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Feb 21, 2016, 21:01 UTC
- Message-ID
- <CAPig+cQ9n4Eg73Uyeg_g_4wzebuwn8=0R-LMb8F9QLFxanwVVg@mail.gmail.com>
- In-Reply-To
- <81ec83acd004ef050a4c8df62fb158b41f0a0a80.1456075680.git.john@keeping.me.uk>
On Sun, Feb 21, 2016 at 12:32 PM, John Keeping <john@keeping.me.uk> wrote:
Show 20 quoted lines
> 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. > > Signed-off-by: John Keeping <john@keeping.me.uk> > --- > diff --git a/t/t8005-blame-i18n.sh b/t/t8005-blame-i18n.sh > @@ -35,8 +35,8 @@ EOF > test_expect_success !MINGW \ > 'blame respects i18n.commitencoding' ' > - git blame --incremental file | \ > - egrep "^(author|summary) " > actual && > + git blame --incremental file >output && > + sed -ne "/^\(author\|summary\) /p" output >actual &&
These tests all crash and burn with BSD sed (including Mac OS X) since you're not restricting yourself to BRE (basic regular expressions). You _could_ request extended regular expressions, which do work on those platforms, as well as with GNU sed:
sed -nEe "/^(author|summary) /p" ...
Show 35 quoted lines
> test_cmp actual expected > ' > > @@ -52,8 +52,8 @@ EOF > test_expect_success !MINGW \ > 'blame respects i18n.logoutputencoding' ' > git config i18n.logoutputencoding eucJP && > - git blame --incremental file | \ > - egrep "^(author|summary) " > actual && > + git blame --incremental file >output && > + sed -ne "/^\(author\|summary\) /p" output >actual && > test_cmp actual expected > ' > > @@ -68,8 +68,8 @@ EOF > > test_expect_success !MINGW \ > 'blame respects --encoding=UTF-8' ' > - git blame --incremental --encoding=UTF-8 file | \ > - egrep "^(author|summary) " > actual && > + git blame --incremental --encoding=UTF-8 file >output && > + sed -ne "/^\(author\|summary\) /p" output >actual && > test_cmp actual expected > ' > > @@ -84,8 +84,8 @@ EOF > > test_expect_success !MINGW \ > 'blame respects --encoding=none' ' > - git blame --incremental --encoding=none file | \ > - egrep "^(author|summary) " > actual && > + git blame --incremental --encoding=none file >output && > + sed -ne "/^\(author\|summary\) /p" output >actual && > test_cmp actual expected > '