t7812: test PCRE2 whitespace bug

Check if git grep works around the PCRE2 big fixed by their e0c6029
(Fix inifinite loop when a single byte newline is searched in JIT.,
2020-05-29), which affects version 10.35 and earlier.

Searching for leading whitespace also triggers the endless loop.
Set a one-second alarm to abort in case we do get hit by the bug, to
avoid having to wait forever for the test result.

Reported-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
René Scharfe 2022-04-08 18:21:52 +02:00 committed by Junio C Hamano
parent ab1f2765f7
commit c36c27e75c

View file

@ -4,6 +4,10 @@ test_description='grep icase on non-English locales'
. ./lib-gettext.sh
doalarm () {
perl -e 'alarm shift; exec @ARGV' -- "$@"
}
test_expect_success GETTEXT_LOCALE 'setup' '
test_write_lines "TILRAUN: Halló Heimur!" >file &&
git add file &&
@ -139,4 +143,10 @@ test_expect_success GETTEXT_LOCALE,LIBPCRE2 'PCRE v2: grep non-literal ASCII fro
test_cmp expected actual
'
test_expect_success GETTEXT_LOCALE,LIBPCRE2 'PCRE v2: grep avoid endless loop bug' '
echo " Halló" >leading-whitespace &&
git add leading-whitespace &&
doalarm 1 git grep --perl-regexp "^\s" leading-whitespace
'
test_done