gettext/gettext-tools/tests/xgettext-java-9
Bruno Haible e1381b84be xgettext: Java: Flag strings on which the method 'formatted' is used as java-printf-format.
* gettext-tools/src/x-java.c (token_type_semicolon): New enum item.
(phase5_get): Recognize semicolon tokens.
(extract_parenthesized): Handle method invocation .formatted. Return when a
semicolon was seen.
* gettext-tools/tests/xgettext-java-8: New file, based on
gettext-tools/tests/xgettext-vala-6.
* gettext-tools/tests/xgettext-java-9: New file, based on
gettext-tools/tests/xgettext-vala-7.
* gettext-tools/tests/Makefile.am (TESTS): Add them.
* NEWS: Mention the change.
2023-12-05 16:07:38 +01:00

31 lines
778 B
Bash

#! /bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src
# Test Java support: diagnostics for invalid format strings.
: ${XGETTEXT=xgettext}
cat <<\EOF > xg-j-9.java
_("Invalid Java format %z").formatted();
EOF
LANGUAGE= LC_ALL=C \
${XGETTEXT} --omit-header --no-location \
-k_ --flag=_:1:pass-java-format --flag=_:1:pass-java-printf-format \
-o xg-j-9.tmp xg-j-9.java 2>xg-j-9.err \
|| Exit 1
cat xg-j-9.err
grep 'warning: Although being used in a format string position, the msgid is not a valid Java printf format string.' xg-j-9.err >/dev/null || Exit 1
func_filter_POT_Creation_Date xg-j-9.tmp xg-j-9.po
cat <<\EOF > xg-j-9.ok
msgid "Invalid Java format %z"
msgstr ""
EOF
: ${DIFF=diff}
${DIFF} xg-j-9.ok xg-j-9.po
result=$?
exit $result