Skip to content

Commit 8de55e3

Browse files
committed
Merge branch 'jc/maint-undefined-i18n-observation-test'
It was unclear what a test in t0204 wanted to check; it turns out that it was only to observe an undefined behaviour of the system, and did not anticipate one kind of reasonable error behaviour. * jc/maint-undefined-i18n-observation-test: t0204: clarify the "observe undefined behaviour" test
2 parents 3f26309 + 9b9f46f commit 8de55e3

File tree

1 file changed

+23
-14
lines changed

1 file changed

+23
-14
lines changed

t/t0204-gettext-reencode-sanity.sh

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

1115
test_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

1721
test_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

4352
test_expect_success GETTEXT_LOCALE 'gettext: Fetching a UTF-8 msgid -> UTF-8' '

0 commit comments

Comments
 (0)