1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-06-02 17:36:09 +02:00

t9129: fix UTF-8 locale detection

The UTF-8 prerequisite test checked explicitly for en_US.utf8 in the
output from "locale -a", but the tests that are actually protected by the
prerequisite were asking LC_ALL=en_US.UTF-8 from the system.

This inconsistency leads the tests to fail on platforms that do not know
both en_US.UTF-8 and en_US.utf8 (thanks you, Yann Droneaud, for bringing
this up with an initial patch).

Instead, pick a locale with ".UTF-8" (with or without hyphen, spelled in
either upper or lowercase) in its name from "locale -a" output, and use it
for running the test.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2010-06-02 12:15:48 -07:00
parent 6774e2bf08
commit 2de03ebe06

View File

@ -14,10 +14,22 @@ compare_git_head_with () {
test_cmp current "$1"
}
a_utf8_locale=$(locale -a | sed -n '/\.[uU][tT][fF]-*8$/{
p
q
}')
if test -n "$a_utf8_locale"
then
test_set_prereq UTF8
else
say "UTF-8 locale not available, some tests are skipped"
fi
compare_svn_head_with () {
# extract just the log message and strip out committer info.
# don't use --limit here since svn 1.1.x doesn't have it,
LC_ALL=en_US.UTF-8 svn log `git svn info --url` | perl -w -e '
LC_ALL="$a_utf8_locale" svn log `git svn info --url` | perl -w -e '
use bytes;
$/ = ("-"x72) . "\n";
my @x = <STDIN>;
@ -69,12 +81,6 @@ do
'
done
if locale -a |grep -q en_US.utf8; then
test_set_prereq UTF8
else
say "UTF-8 locale not available, test skipped"
fi
test_expect_success UTF8 'ISO-8859-1 should match UTF-8 in svn' '
(
cd ISO8859-1 &&