summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaiki Ueno <ueno@gnu.org>2014-12-01 13:41:28 +0900
committerDaiki Ueno <ueno@gnu.org>2014-12-01 14:55:19 +0900
commit0d2b9cd3c499ae73c91557bc970e17e32a0ba77c (patch)
treec58eea930192fb54e7d8bd90b8325e7212a2ed39
parent6aad665c4854f6dd4039bdb592f95037e9c30cb7 (diff)
downloadexternal_gettext-0d2b9cd3c499ae73c91557bc970e17e32a0ba77c.zip
external_gettext-0d2b9cd3c499ae73c91557bc970e17e32a0ba77c.tar.gz
external_gettext-0d2b9cd3c499ae73c91557bc970e17e32a0ba77c.tar.bz2
tests: Add test for Unicode surrogate characters in C#
* xgettext-csharp-8: New file. * Makefile.am (TESTS): Add new test.
-rw-r--r--gettext-tools/tests/ChangeLog6
-rw-r--r--gettext-tools/tests/Makefile.am2
-rwxr-xr-xgettext-tools/tests/xgettext-csharp-867
3 files changed, 74 insertions, 1 deletions
diff --git a/gettext-tools/tests/ChangeLog b/gettext-tools/tests/ChangeLog
index 0daf510..746e6ac 100644
--- a/gettext-tools/tests/ChangeLog
+++ b/gettext-tools/tests/ChangeLog
@@ -1,3 +1,9 @@
+2014-12-01 Daiki Ueno <ueno@gnu.org>
+
+ tests: Add test for Unicode surrogate characters in C#
+ * xgettext-csharp-8: New file.
+ * Makefile.am (TESTS): Add new test.
+
2014-11-28 Daiki Ueno <ueno@gnu.org>
tests: Add test for empty msgstr passed to msgfilter
diff --git a/gettext-tools/tests/Makefile.am b/gettext-tools/tests/Makefile.am
index d4d567e..f5766cc 100644
--- a/gettext-tools/tests/Makefile.am
+++ b/gettext-tools/tests/Makefile.am
@@ -79,7 +79,7 @@ TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \
xgettext-c-16 xgettext-c-17 xgettext-c-18 xgettext-c-19 \
xgettext-csharp-1 xgettext-csharp-2 xgettext-csharp-3 \
xgettext-csharp-4 xgettext-csharp-5 xgettext-csharp-6 \
- xgettext-csharp-7 \
+ xgettext-csharp-7 xgettext-csharp-8 \
xgettext-elisp-1 xgettext-elisp-2 \
xgettext-glade-1 xgettext-glade-2 xgettext-glade-3 xgettext-glade-4 \
xgettext-glade-5 xgettext-glade-6 xgettext-glade-7 \
diff --git a/gettext-tools/tests/xgettext-csharp-8 b/gettext-tools/tests/xgettext-csharp-8
new file mode 100755
index 0000000..f5e5694
--- /dev/null
+++ b/gettext-tools/tests/xgettext-csharp-8
@@ -0,0 +1,67 @@
+#! /bin/sh
+. "${srcdir=.}/init.sh"; path_prepend_ . ../src
+
+# Test C# support: Unicode character escape handling
+
+cat <<\EOF > xg-cs-8.cs
+// Valid:
+string s1 = "\U00020213"; // Codepoint U+20213
+string s2 = "\uD840\uDE13"; // Encoded form of U+20213
+string s3 = "\uD840\U0000DE13"; // Encoded form of U+20213
+string s4 = "\U0000D840\uDE13"; // Encoded form of U+20213
+string s5 = "\U0000D840\U0000DE13"; // Encoded form of U+20213
+string s6 = "\xD840\xDE13"; // Encoded form of U+20213
+
+// Invalid:
+string i1 = "\U0020213"; // Unterminated
+string i2 = "\uD840\u3032"; // Missing low surrogate
+string i3 = "\uD840\uDE1"; // Unterminated after a high surrogate
+EOF
+
+: ${XGETTEXT=xgettext}
+${XGETTEXT} --output - --add-location xg-cs-8.cs -a 2>/dev/null | \
+ sed '/\"POT-Creation-Date:.*/d' | LC_ALL=C tr -d '\r' > xg-cs-8.po || \
+ exit 1
+
+cat <<\EOF > xg-cs-8.ok
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: xg-cs-8.cs:2 xg-cs-8.cs:3 xg-cs-8.cs:4 xg-cs-8.cs:5 xg-cs-8.cs:6
+#: xg-cs-8.cs:7
+msgid "𠈓"
+msgstr ""
+
+#: xg-cs-8.cs:10
+msgid "\\U0020213"
+msgstr ""
+
+#: xg-cs-8.cs:11
+msgid "�〲"
+msgstr ""
+
+#: xg-cs-8.cs:12
+msgid "�\\uDE1"
+msgstr ""
+EOF
+
+: ${DIFF=diff}
+${DIFF} xg-cs-8.ok xg-cs-8.po
+result=$?
+
+exit $result