diff options
Diffstat (limited to 'gettext-tools/tests/xgettext-csharp-3')
-rwxr-xr-x | gettext-tools/tests/xgettext-csharp-3 | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/gettext-tools/tests/xgettext-csharp-3 b/gettext-tools/tests/xgettext-csharp-3 new file mode 100755 index 0000000..4a3ee3e --- /dev/null +++ b/gettext-tools/tests/xgettext-csharp-3 @@ -0,0 +1,178 @@ +#!/bin/sh + +# More tests for C# support: string syntax + +tmpfiles="" +trap 'rm -fr $tmpfiles' 1 2 3 15 + +tmpfiles="$tmpfiles xg-cs-3.cs" +tr '%' '\015' <<\EOF > xg-cs-3.cs +class TestCase { + public static void Main (String[] args) { + // Test recognition of \u escapes. + GetString ("B\u00f6se B\u00fcbchen"); + // \u escapes with more than one u are invalid. + GetString ("Japanese: \uu65e5\uuu672c\u8A9e"); + GetString ("embedded\nnewline"); + // Spaces from end of comment are removed. %GetString("dummy"); + // Two backslashes (unlike in Java, where this is just one backslash). + GetString ("\u005c\u005c"); + // A 6-character string (unlike in Java, where this is just one backslash). + GetString ("\\u005c"); + // A single backslash. + GetString ("\\"); + // There is only one \u recognition pass. + GetString ("\u005cu005c"); + // Octal escape sequences are not recognized, except for \0. + GetString ("\134"); + // Escape sequences in strings. + GetString ("t -> \t, b -> \b, n -> \n, dquote -> \", squote -> \' ..."); + // Hex escapes are recognized. + GetString ("bel: \x07\n"); + GetString // Recognized despite comments + ( /* Even across multiline +comment! */ "this is a single " /* now comes the concatenation! */ + // after + + "long line"); + // Verbatim string literals are extracted. + GetString (@"verbatim 1"); + // In verbatim string literals, no escape sequences are recognized. + GetString (@"verbatim 2 \u005c \\ \t \b \n \'"); + // In verbatim string literals, only doubled delimiters are recognized. + GetString (@"verbatim 3 ""test"); + // Normal and verbatim string literals can be concatenated. + GetString ("left - \"quot" + @"ation"" - right"); + // Character literals are not extracted. + GetString ('x'); + // Invalid concatenations are not concatenated. + GetString ("fooba"+'r'); + // Verify that a comma inside braces is hidden. + MyGetString (new Object[] { "don't", "fool", "me" }, "this is the second argument"); + } +} +EOF + +tmpfiles="$tmpfiles xg-cs-3.po" +: ${XGETTEXT=xgettext} +# delete POT-Creation-Date: line because the date depends on local time. +${XGETTEXT} --output - --add-location -c -kMyGetString:2 xg-cs-3.cs 2>/dev/null \ + | sed '/\"POT-Creation-Date:.*/d' > xg-cs-3.po +test $? = 0 || { rm -fr $tmpfiles; exit 1; } + +tmpfiles="$tmpfiles xg-cs-3.ok" +cat <<\EOF > xg-cs-3.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" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Test recognition of \u escapes. +#: xg-cs-3.cs:4 +msgid "Böse Bübchen" +msgstr "" + +#. \u escapes with more than one u are invalid. +#: xg-cs-3.cs:6 +msgid "Japanese: \\uu65e5\\uuu672c語" +msgstr "" + +#: xg-cs-3.cs:7 +msgid "" +"embedded\n" +"newline" +msgstr "" + +#. Spaces from end of comment are removed. +#: xg-cs-3.cs:8 +msgid "dummy" +msgstr "" + +#. Two backslashes (unlike in Java, where this is just one backslash). +#: xg-cs-3.cs:10 +msgid "\\\\" +msgstr "" + +#. A 6-character string (unlike in Java, where this is just one backslash). +#. There is only one \u recognition pass. +#: xg-cs-3.cs:12 xg-cs-3.cs:16 +msgid "\\u005c" +msgstr "" + +#. A single backslash. +#: xg-cs-3.cs:14 +msgid "\\" +msgstr "" + +#. Octal escape sequences are not recognized, except for \0. +#: xg-cs-3.cs:18 +msgid "\\134" +msgstr "" + +#. Escape sequences in strings. +#: xg-cs-3.cs:20 +msgid "" +"t -> \t, b -> \b, n -> \n" +", dquote -> \", squote -> ' ..." +msgstr "" + +#. Hex escapes are recognized. +#: xg-cs-3.cs:22 +msgid "bel: \n" +msgstr "" + +#. Recognized despite comments +#. Even across multiline +#. comment! +#: xg-cs-3.cs:25 +msgid "this is a single long line" +msgstr "" + +#. Verbatim string literals are extracted. +#: xg-cs-3.cs:28 +msgid "verbatim 1" +msgstr "" + +#. In verbatim string literals, no escape sequences are recognized. +#: xg-cs-3.cs:30 +msgid "verbatim 2 \\u005c \\\\ \\t \\b \\n \\'" +msgstr "" + +#. In verbatim string literals, only doubled delimiters are recognized. +#: xg-cs-3.cs:32 +msgid "verbatim 3 \"test" +msgstr "" + +#. Normal and verbatim string literals can be concatenated. +#: xg-cs-3.cs:34 +msgid "left - \"quotation\" - right" +msgstr "" + +#. Invalid concatenations are not concatenated. +#: xg-cs-3.cs:38 +msgid "fooba" +msgstr "" + +#. Verify that a comma inside braces is hidden. +#: xg-cs-3.cs:40 +msgid "this is the second argument" +msgstr "" +EOF + +: ${DIFF=diff} +${DIFF} xg-cs-3.ok xg-cs-3.po +result=$? + +rm -fr $tmpfiles + +exit $result |