]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Test for effect of range flag on msgfmt format string checking.
authorBruno Haible <bruno@clisp.org>
Sat, 4 Oct 2008 14:55:00 +0000 (14:55 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 23 Jun 2009 10:15:55 +0000 (12:15 +0200)
gettext-tools/tests/ChangeLog
gettext-tools/tests/Makefile.am
gettext-tools/tests/msgfmt-17 [new file with mode: 0755]

index e02c8e00278b3c8ade136f2f4f4d406c18fe2272..ced313f81f63a364442ab0071697c127c570fef2 100644 (file)
@@ -1,3 +1,18 @@
+2008-10-04  Bruno Haible  <bruno@clisp.org>
+
+       * msgfmt-17: New file.
+       * Makefile.am (TESTS): Add it.
+       Reported by Anatoly Techtonik <techtonik@gmail.com>
+       via <https://savannah.gnu.org/bugs/?24433>.
+
+2008-10-04  Bruno Haible  <bruno@clisp.org>
+
+       * msgcat-18: New file.
+       * msgcomm-27: New file.
+       * msgmerge-24: New file.
+       * xgettext-c-18: New file.
+       * Makefile.am (TESTS): Add them.
+
 2008-09-29  Bruno Haible  <bruno@clisp.org>
 
        Avoid test suite failures on mingw.
index 138b1db1fd1f344c545680b1d340c9dc7991d5cb..3330ac28a97a684f57c42c96bb377acdeb289abb 100644 (file)
@@ -45,7 +45,7 @@ TESTS = gettext-1 gettext-2 gettext-3 gettext-4 gettext-5 gettext-6 gettext-7 \
        msgfilter-sr-latin-1 \
        msgfmt-1 msgfmt-2 msgfmt-3 msgfmt-4 msgfmt-5 msgfmt-6 msgfmt-7 \
        msgfmt-8 msgfmt-9 msgfmt-10 msgfmt-11 msgfmt-12 msgfmt-13 msgfmt-14 \
-       msgfmt-15 msgfmt-16 \
+       msgfmt-15 msgfmt-16 msgfmt-17 \
        msgfmt-properties-1 \
        msgfmt-qt-1 msgfmt-qt-2 \
        msggrep-1 msggrep-2 msggrep-3 msggrep-4 msggrep-5 msggrep-6 msggrep-7 \
diff --git a/gettext-tools/tests/msgfmt-17 b/gettext-tools/tests/msgfmt-17
new file mode 100755 (executable)
index 0000000..6f74253
--- /dev/null
@@ -0,0 +1,136 @@
+#! /bin/sh
+
+# Test range dependent checking of format strings with plural forms.
+
+tmpfiles=""
+trap 'rm -fr $tmpfiles' 1 2 3 15
+
+# Take as example a plural formula which takes all values infinitely often.
+# Test: 1 - lack %d for value 0 - error
+#       2 - lack %d for value 0 but limited range such that only one n - ok
+#       3 - lack %d for value 1 - error
+#       4 - lack %d for value 1 but limited range such that multiple n - error
+
+tmpfiles="$tmpfiles mf-15.po1"
+cat <<\EOF > mf-15.po1
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../roundup/date.py:851
+#, python-format
+msgid "1 %(number)s/4 hours"
+msgid_plural "1 %(number)s/4 hours"
+msgstr[0] "час с четвертью"
+msgstr[1] "час и %(number)s четверти"
+msgstr[2] "час и %(number)s четвертей"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o /dev/null mf-15.po1 2>/dev/null
+test $? = 1 || { rm -fr $tmpfiles; exit 1; }
+
+tmpfiles="$tmpfiles mf-15.po2"
+cat <<\EOF > mf-15.po2
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../roundup/date.py:851
+#, python-format, range: 1..3
+msgid "1 %(number)s/4 hours"
+msgid_plural "1 %(number)s/4 hours"
+msgstr[0] "час с четвертью"
+msgstr[1] "час и %(number)s четверти"
+msgstr[2] "час и %(number)s четвертей"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o /dev/null mf-15.po2
+test $? = 0 || { rm -fr $tmpfiles; exit 1; }
+
+tmpfiles="$tmpfiles mf-15.po3"
+cat <<\EOF > mf-15.po3
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../roundup/date.py:851
+#, python-format
+msgid "1 %(number)s/4 hours"
+msgid_plural "1 %(number)s/4 hours"
+msgstr[0] "час и %(number)s четверти"
+msgstr[1] "час с четвертью"
+msgstr[2] "час и %(number)s четвертей"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o /dev/null mf-15.po3 2>/dev/null
+test $? = 1 || { rm -fr $tmpfiles; exit 1; }
+
+tmpfiles="$tmpfiles mf-15.po4"
+cat <<\EOF > mf-15.po4
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU bison\n"
+"PO-Revision-Date: 2001-04-05 19:47+0200\n"
+"Last-Translator: ABC DEF <abc@gnu.uucp>\n"
+"Language-Team: test <test@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../roundup/date.py:851
+#, python-format, range: 1..3
+msgid "1 %(number)s/4 hours"
+msgid_plural "1 %(number)s/4 hours"
+msgstr[0] "час и %(number)s четверти"
+msgstr[1] "час с четвертью"
+msgstr[2] "час и %(number)s четвертей"
+EOF
+
+: ${MSGFMT=msgfmt}
+${MSGFMT} --check -o /dev/null mf-15.po4 2>/dev/null
+test $? = 1 || { rm -fr $tmpfiles; exit 1; }
+
+rm -fr $tmpfiles
+
+exit $result