You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.5 KiB
93 lines
2.5 KiB
#!/bin/sh |
|
|
|
test_description='test log with i18n features' |
|
. ./lib-gettext.sh |
|
|
|
# two forms of é |
|
utf8_e=$(printf '\303\251') |
|
latin1_e=$(printf '\351') |
|
|
|
# invalid UTF-8 |
|
invalid_e=$(printf '\303\50)') # ")" at end to close opening "(" |
|
|
|
test_expect_success 'create commits in different encodings' ' |
|
test_tick && |
|
cat >msg <<-EOF && |
|
utf8 |
|
|
|
t${utf8_e}st |
|
EOF |
|
git add msg && |
|
git -c i18n.commitencoding=utf8 commit -F msg && |
|
cat >msg <<-EOF && |
|
latin1 |
|
|
|
t${latin1_e}st |
|
EOF |
|
git add msg && |
|
git -c i18n.commitencoding=ISO-8859-1 commit -F msg |
|
' |
|
|
|
test_expect_success 'log --grep searches in log output encoding (utf8)' ' |
|
cat >expect <<-\EOF && |
|
latin1 |
|
utf8 |
|
EOF |
|
git log --encoding=utf8 --format=%s --grep=$utf8_e >actual && |
|
test_cmp expect actual |
|
' |
|
|
|
test_expect_success !MINGW 'log --grep searches in log output encoding (latin1)' ' |
|
cat >expect <<-\EOF && |
|
latin1 |
|
utf8 |
|
EOF |
|
git log --encoding=ISO-8859-1 --format=%s --grep=$latin1_e >actual && |
|
test_cmp expect actual |
|
' |
|
|
|
test_expect_success !MINGW 'log --grep does not find non-reencoded values (utf8)' ' |
|
git log --encoding=utf8 --format=%s --grep=$latin1_e >actual && |
|
test_must_be_empty actual |
|
' |
|
|
|
test_expect_success !MINGW 'log --grep does not find non-reencoded values (latin1)' ' |
|
git log --encoding=ISO-8859-1 --format=%s --grep=$utf8_e >actual && |
|
test_must_be_empty actual |
|
' |
|
|
|
for engine in fixed basic extended perl |
|
do |
|
prereq= |
|
if test $engine = "perl" |
|
then |
|
prereq="PCRE" |
|
else |
|
prereq="" |
|
fi |
|
force_regex= |
|
if test $engine != "fixed" |
|
then |
|
force_regex=.* |
|
fi |
|
test_expect_success !MINGW,!REGEX_ILLSEQ,GETTEXT_LOCALE,$prereq "-c grep.patternType=$engine log --grep does not find non-reencoded values (latin1 + locale)" " |
|
cat >expect <<-\EOF && |
|
latin1 |
|
utf8 |
|
EOF |
|
LC_ALL=\"$is_IS_locale\" git -c grep.patternType=$engine log --encoding=ISO-8859-1 --format=%s --grep=\"$force_regex$latin1_e\" >actual && |
|
test_cmp expect actual |
|
" |
|
|
|
test_expect_success !MINGW,GETTEXT_LOCALE,$prereq "-c grep.patternType=$engine log --grep does not find non-reencoded values (latin1 + locale)" " |
|
LC_ALL=\"$is_IS_locale\" git -c grep.patternType=$engine log --encoding=ISO-8859-1 --format=%s --grep=\"$force_regex$utf8_e\" >actual && |
|
test_must_be_empty actual |
|
" |
|
|
|
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)" " |
|
LC_ALL=\"$is_IS_locale\" git -c grep.patternType=$engine log --encoding=ISO-8859-1 --format=%s --grep=\"$force_regex$invalid_e\" >actual && |
|
test_must_be_empty actual |
|
" |
|
done |
|
|
|
test_done
|
|
|