@@ -7,6 +7,10 @@ test_description="Gettext reencoding of our *.po/*.mo files works"
77
88. ./lib-gettext.sh
99
10+ # The constants used in a tricky observation for undefined behaviour
11+ RUNES=" TILRAUN: ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ"
12+ PUNTS=" TILRAUN: ?? ???? ??? ?? ???? ?? ??? ????? ??????????? ??? ?? ????"
13+ MSGKEY=" TEST: Old English Runes"
1014
1115test_expect_success GETTEXT_LOCALE ' gettext: Emitting UTF-8 from our UTF-8 *.mo files / Icelandic' '
1216 printf "TILRAUN: Halló Heimur!" >expect &&
@@ -15,8 +19,8 @@ test_expect_success GETTEXT_LOCALE 'gettext: Emitting UTF-8 from our UTF-8 *.mo
1519'
1620
1721test_expect_success GETTEXT_LOCALE ' gettext: Emitting UTF-8 from our UTF-8 *.mo files / Runes' '
18- printf "TILRAUN: ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ " >expect &&
19- LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: Old English Runes " >actual &&
22+ printf "%s" "$RUNES " >expect &&
23+ LANGUAGE=is LC_ALL="$is_IS_locale" gettext "$MSGKEY " >actual &&
2024 test_cmp expect actual
2125'
2226
@@ -26,18 +30,23 @@ test_expect_success GETTEXT_ISO_LOCALE 'gettext: Emitting ISO-8859-1 from our UT
2630 test_cmp expect actual
2731'
2832
29- test_expect_success GETTEXT_ISO_LOCALE ' gettext: Emitting ISO-8859-1 from our UTF-8 *.mo files / Runes' '
30- LANGUAGE=is LC_ALL="$is_IS_iso_locale" gettext "TEST: Old English Runes" >runes &&
31-
32- if grep "^TEST: Old English Runes$" runes
33- then
34- say "Your system can not handle this complexity and returns the string as-is"
35- else
36- # Both Solaris and GNU libintl will return this stream of
37- # question marks, so it is s probably portable enough
38- printf "TILRAUN: ?? ???? ??? ?? ???? ?? ??? ????? ??????????? ??? ?? ????" >runes-expect &&
39- test_cmp runes-expect runes
40- fi
33+ test_expect_success GETTEXT_ISO_LOCALE ' gettext: impossible ISO-8859-1 output' '
34+ LANGUAGE=is LC_ALL="$is_IS_iso_locale" gettext "$MSGKEY" >runes &&
35+ case "$(cat runes)" in
36+ "$MSGKEY")
37+ say "Your system gives back the key to message catalog"
38+ ;;
39+ "$PUNTS")
40+ say "Your system replaces an impossible character with ?"
41+ ;;
42+ "$RUNES")
43+ say "Your system gives back the raw message for an impossible request"
44+ ;;
45+ *)
46+ say "We never saw the error behaviour your system exhibits"
47+ false
48+ ;;
49+ esac
4150'
4251
4352test_expect_success GETTEXT_LOCALE ' gettext: Fetching a UTF-8 msgid -> UTF-8' '
0 commit comments