From: Bruno Haible Date: Sat, 4 Oct 2008 14:55:00 +0000 (+0000) Subject: Test for effect of range flag on msgfmt format string checking. X-Git-Tag: v0.18~299 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5a5384cf225afb7eebf93d2bba1a799a61a6e5a7;p=thirdparty%2Fgettext.git Test for effect of range flag on msgfmt format string checking. --- diff --git a/gettext-tools/tests/ChangeLog b/gettext-tools/tests/ChangeLog index e02c8e002..ced313f81 100644 --- a/gettext-tools/tests/ChangeLog +++ b/gettext-tools/tests/ChangeLog @@ -1,3 +1,18 @@ +2008-10-04 Bruno Haible + + * msgfmt-17: New file. + * Makefile.am (TESTS): Add it. + Reported by Anatoly Techtonik + via . + +2008-10-04 Bruno Haible + + * 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 Avoid test suite failures on mingw. diff --git a/gettext-tools/tests/Makefile.am b/gettext-tools/tests/Makefile.am index 138b1db1f..3330ac28a 100644 --- a/gettext-tools/tests/Makefile.am +++ b/gettext-tools/tests/Makefile.am @@ -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 index 000000000..6f742533d --- /dev/null +++ b/gettext-tools/tests/msgfmt-17 @@ -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 , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU bison\n" +"PO-Revision-Date: 2001-04-05 19:47+0200\n" +"Last-Translator: ABC DEF \n" +"Language-Team: test \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 , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU bison\n" +"PO-Revision-Date: 2001-04-05 19:47+0200\n" +"Last-Translator: ABC DEF \n" +"Language-Team: test \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 , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU bison\n" +"PO-Revision-Date: 2001-04-05 19:47+0200\n" +"Last-Translator: ABC DEF \n" +"Language-Team: test \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 , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU bison\n" +"PO-Revision-Date: 2001-04-05 19:47+0200\n" +"Last-Translator: ABC DEF \n" +"Language-Team: test \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