From e73c27f435017e22a68383255f15ebaa562dd414 Mon Sep 17 00:00:00 2001 From: "Brian C. Lane" Date: Wed, 13 Aug 2014 13:40:28 -0700 Subject: [PATCH] tests: Try several UTF8 locales Not all distributions (Fedora) have C.UTF-8 so try several (en_US, de_DE, fr_FR, es_ES). This may still fail if none exist. * tests/t0251-gpt-unicode.sh: Test for en_US de_DE fr_FR es_ES --- tests/t0251-gpt-unicode.sh | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tests/t0251-gpt-unicode.sh b/tests/t0251-gpt-unicode.sh index c845950..537aaa1 100755 --- a/tests/t0251-gpt-unicode.sh +++ b/tests/t0251-gpt-unicode.sh @@ -22,7 +22,23 @@ dev=loop-file # create zeroed device truncate -s 10m $dev || fail=1 -export LC_ALL=C.UTF-8 +found_locale=no +for locale in en_US de_DE fr_FR es_ES +do + LC_ALL="$locale.utf8" + + # In a UTF-8 locale, the string below prints as 4 characters. + if [ `printf 'foo\341\264\244' | wc -m` -eq 4 ]; then + found_locale=yes + break + fi +done + +if [ "$found_locale" != "yes" ]; then + echo "no valid UTF-8 locale found; skipping" >&2 + exit 77 +fi + # create gpt label with named partition part_name=$(printf 'foo\341\264\244') parted -s $dev mklabel gpt mkpart primary ext2 1MiB 2MiB name 1 $part_name > empty 2>&1 || fail=1 -- 1.9.3