From: Daiki Ueno Date: Fri, 12 Dec 2014 08:20:23 +0000 (+0900) Subject: tests: Check invalid memory access in Lisp/Scheme X-Git-Tag: v0.19.4~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3a0fb4fd5471b2665df343a6c73244c5d63afcee;p=thirdparty%2Fgettext.git tests: Check invalid memory access in Lisp/Scheme * format-lisp-2, format-scheme-2: Test type compatibility with non-strict checking mode. --- diff --git a/gettext-tools/tests/ChangeLog b/gettext-tools/tests/ChangeLog index b4811e56d..12bc80498 100644 --- a/gettext-tools/tests/ChangeLog +++ b/gettext-tools/tests/ChangeLog @@ -1,3 +1,8 @@ +2014-12-12 Daiki Ueno + + * format-lisp-2, format-scheme-2: Test type compatibility with + non-strict checking mode. + 2014-12-09 Daiki Ueno * gettext-8-prg.c: Include . diff --git a/gettext-tools/tests/format-lisp-2 b/gettext-tools/tests/format-lisp-2 index 4698932e1..46c4feea1 100755 --- a/gettext-tools/tests/format-lisp-2 +++ b/gettext-tools/tests/format-lisp-2 @@ -163,6 +163,11 @@ msgstr "xyz~<~D~;~D~C~S~;~S~>" # Invalid: justification catches ~^ msgid "abc~<~D~;~^~D~>~C" msgstr "abc~D~^~D~C" +# Invalid: type compatibility with non-strict checking +msgid "abc~{~c~c~}" +msgid_plural "abc~{~c~c~}" +msgstr[0] "xyz~{~c~d~}" +msgstr[1] "xyz~{~c~d~}" EOF : ${MSGFMT=msgfmt} @@ -170,12 +175,28 @@ n=0 while read comment; do read msgid_line read msgstr_line + msgid_plural_line="" + if echo "$msgstr_line" | grep '^msgid_plural' > /dev/null; then + msgid_plural_line="$msgstr_line" + read msgstr0_line + read msgstr1_line + fi n=`expr $n + 1` - cat < f-l-2-$n.po + if test -z "$msgid_plural_line"; then + cat < f-l-2-$n.po #, lisp-format ${msgid_line} ${msgstr_line} EOF + else + cat < f-l-2-$n.po +#, lisp-format +${msgid_line} +${msgid_plural_line} +${msgstr0_line} +${msgstr1_line} +EOF + fi fail= if echo "$comment" | grep 'Valid:' > /dev/null; then if ${MSGFMT} --check-format -o f-l-2-$n.mo f-l-2-$n.po; then diff --git a/gettext-tools/tests/format-scheme-2 b/gettext-tools/tests/format-scheme-2 index 8be3daa69..44829aea3 100755 --- a/gettext-tools/tests/format-scheme-2 +++ b/gettext-tools/tests/format-scheme-2 @@ -178,6 +178,11 @@ msgstr "xyz~{~1@*~C~2:*~D~^~1*~}" # Invalid: ~^ inside iteration depends on position msgid "abc~{~D ~^~C~}" msgstr "xyz~{~1@*~C~2:*~D~1*~^~}" +# Invalid: type compatibility with non-strict checking +msgid "abc~{~c~c~}" +msgid_plural "abc~{~c~c~}" +msgstr[0] "xyz~{~c~d~}" +msgstr[1] "xyz~{~c~d~}" EOF : ${MSGFMT=msgfmt} @@ -185,12 +190,28 @@ n=0 while read comment; do read msgid_line read msgstr_line + msgid_plural_line="" + if echo "$msgstr_line" | grep '^msgid_plural' > /dev/null; then + msgid_plural_line="$msgstr_line" + read msgstr0_line + read msgstr1_line + fi n=`expr $n + 1` - cat < f-sc-2-$n.po + if test -z "$msgid_plural_line"; then + cat < f-sc-2-$n.po #, scheme-format ${msgid_line} ${msgstr_line} EOF + else + cat < f-l-2-$n.po +#, lisp-format +${msgid_line} +${msgid_plural_line} +${msgstr0_line} +${msgstr1_line} +EOF + fi fail= if echo "$comment" | grep 'Valid:' > /dev/null; then if ${MSGFMT} --check-format -o f-sc-2-$n.mo f-sc-2-$n.po; then