Skip to content

Commit 7187c7b

Browse files
emastegitster
authored andcommitted
t4210: skip i18n tests that don't work on FreeBSD
A number of t4210-log-i18n tests added in 4e2443b set LC_ALL to a UTF-8 locale (is_IS.UTF-8) but then pass an invalid UTF-8 string to --grep. FreeBSD's regcomp() fails in this case with REG_ILLSEQ, "illegal byte sequence," which git then passes to die(): fatal: command line: '�': illegal byte sequence When these tests were added the commit message stated: | It's possible that this | test breaks the "basic" and "extended" backends on some systems that | are more anal than glibc about the encoding of locale issues with | POSIX functions that I can remember which seems to be the case here. Extend test-lib.sh to add a REGEX_ILLSEQ prereq, set it on FreeBSD, and add !REGEX_ILLSEQ to the two affected tests. Signed-off-by: Ed Maste <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent d9f6f3b commit 7187c7b

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

t/t4210-log-i18n.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ do
7070
then
7171
force_regex=.*
7272
fi
73-
test_expect_success !MINGW,GETTEXT_LOCALE,$prereq "-c grep.patternType=$engine log --grep does not find non-reencoded values (latin1 + locale)" "
73+
test_expect_success !MINGW,!REGEX_ILLSEQ,GETTEXT_LOCALE,$prereq "-c grep.patternType=$engine log --grep does not find non-reencoded values (latin1 + locale)" "
7474
cat >expect <<-\EOF &&
7575
latin1
7676
utf8
@@ -84,7 +84,7 @@ do
8484
test_must_be_empty actual
8585
"
8686

87-
test_expect_success !MINGW,GETTEXT_LOCALE,$prereq "-c grep.patternType=$engine log --grep does not die on invalid UTF-8 value (latin1 + locale + invalid needle)" "
87+
test_expect_success !MINGW,!REGEX_ILLSEQ,GETTEXT_LOCALE,$prereq "-c grep.patternType=$engine log --grep does not die on invalid UTF-8 value (latin1 + locale + invalid needle)" "
8888
LC_ALL=\"$is_IS_locale\" git -c grep.patternType=$engine log --encoding=ISO-8859-1 --format=%s --grep=\"$force_regex$invalid_e\" >actual &&
8989
test_must_be_empty actual
9090
"

t/test-lib.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1422,7 +1422,7 @@ else
14221422
'
14231423
fi
14241424

1425-
# Fix some commands on Windows
1425+
# Fix some commands on Windows, and other OS-specific things
14261426
uname_s=$(uname -s)
14271427
case $uname_s in
14281428
*MINGW*)
@@ -1453,6 +1453,12 @@ case $uname_s in
14531453
test_set_prereq SED_STRIPS_CR
14541454
test_set_prereq GREP_STRIPS_CR
14551455
;;
1456+
FreeBSD)
1457+
test_set_prereq REGEX_ILLSEQ
1458+
test_set_prereq POSIXPERM
1459+
test_set_prereq BSLASHPSPEC
1460+
test_set_prereq EXECKEEPSPID
1461+
;;
14561462
*)
14571463
test_set_prereq POSIXPERM
14581464
test_set_prereq BSLASHPSPEC

0 commit comments

Comments
 (0)