t7008: demonstrate behavior of grep with textconv
authorMichael J Gruber <git@drmicha.warpmail.net>
Fri, 10 May 2013 15:10:14 +0000 (17:10 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 10 May 2013 17:27:28 +0000 (10:27 -0700)
Currently, "git grep" does not honor any textconv filters, with nor
without --textconv. Demonstrate this in the tests.

The default is expected to remain unchanged.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7008-grep-binary.sh
index 26f831984d603a959e2141641269268a2f0d78c8..1c0946f8441f9c16ecd3176786d5061b4bc50dab 100755 (executable)
@@ -145,4 +145,35 @@ test_expect_success 'grep respects not-binary diff attribute' '
        test_cmp expect actual
 '
 
+cat >nul_to_q_textconv <<'EOF'
+#!/bin/sh
+"$PERL_PATH" -pe 'y/\000/Q/' < "$1"
+EOF
+chmod +x nul_to_q_textconv
+
+test_expect_success 'setup textconv filters' '
+       echo a diff=foo >.gitattributes &&
+       git config diff.foo.textconv "\"$(pwd)\""/nul_to_q_textconv
+'
+
+test_expect_success 'grep does not honor textconv' '
+       test_must_fail git grep Qfile
+'
+
+test_expect_failure 'grep --textconv honors textconv' '
+       echo "a:binaryQfile" >expect &&
+       git grep --textconv Qfile >actual &&
+       test_cmp expect actual
+'
+
+test_expect_success 'grep --no-textconv does not honor textconv' '
+       test_must_fail git grep --no-textconv Qfile
+'
+
+test_expect_failure 'grep --textconv blob honors textconv' '
+       echo "HEAD:a:binaryQfile" >expect &&
+       git grep --textconv Qfile HEAD:a >actual &&
+       test_cmp expect actual
+'
+
 test_done