]> git.ipfire.org Git - thirdparty/git.git/commitdiff
grep/pcre2 tests: don't rely on invalid UTF-8 data test
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Sun, 24 Jan 2021 17:28:12 +0000 (18:28 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 25 Jan 2021 00:09:15 +0000 (16:09 -0800)
As noted in [1] when I originally added this test in [2] the test was
completely broken as it lacked a redirect[3]. I now think this whole
thing is overly fragile. Let's only test if we have a segfault here.

Before this the first test's "test_cmp" was pretty meaningless. We
were only testing if PCREv2 was so broken that it would spew out
something completely unrelated on stdout, which isn't very plausible.

In the second test we're relying on PCREv2 forever holding to the
current behavior of the PCRE_UTF8 flag, as opposed to learning some
optimistic graceful fallback to PCRE2_MATCH_INVALID_UTF in the
future. If that happens having this test broken under bisecting would
suck.

A follow-up commit will actually test this case in a meaningful way
under the PCRE2_MATCH_INVALID_UTF flag. Let's run this one
unconditionally, and just make sure we don't segfault.

1. e714b898c6 (t7812: expect failure for grep -i with invalid UTF-8
   data, 2019-11-29)
2. 8a5999838e (grep: stess test PCRE v2 on invalid UTF-8 data,
   2019-07-26)
3. c74b3cbb83 (t7812: add missing redirects, 2019-11-26)

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t7812-grep-icase-non-ascii.sh

index 03dba6685ab7a0fc3d19a48196e5987d714ba62e..38457c2e4f10eb43829ee9524101c5f87eaf4c36 100755 (executable)
@@ -76,12 +76,7 @@ test_expect_success GETTEXT_LOCALE,LIBPCRE2 'PCRE v2: grep non-ASCII from invali
 
 test_expect_success GETTEXT_LOCALE,LIBPCRE2 'PCRE v2: grep non-ASCII from invalid UTF-8 data with -i' '
        test_might_fail git grep -hi "Æ" invalid-0x80 >actual &&
-       if test -s actual
-       then
-           test_cmp expected actual
-       fi &&
-       test_must_fail git grep -hi "(*NO_JIT)Æ" invalid-0x80 >actual &&
-       ! test_cmp expected actual
+       test_might_fail git grep -hi "(*NO_JIT)Æ" invalid-0x80 >actual
 '
 
 test_done