#! /bin/sh

# Test of --java option.

# Note: This test fails when using gcj from GCC 3.1 and GCC 3.2, due to a bug
# (libgcj/6576). It is fixed in GCC 3.3.

tmpfiles=""
trap 'rm -fr $tmpfiles' 1 2 3 15

# Test whether we can compile and execute Java programs.
test "${JAVA_CHOICE}" != no || {
  echo "Skipping test: configured with --disable-java"
  exit 77
}
test "${BUILDJAVA}" = yes || {
  echo "Skipping test: Java compiler or jar not found"
  exit 77
}
test "${TESTJAVA}" = yes || {
  echo "Skipping test: Java engine not found"
  exit 77
}

tmpfiles="$tmpfiles fr.po"
cat <<\EOF > fr.po
msgid ""
msgstr ""
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

msgid "'Your command, please?', asked the waiter."
msgstr "«Votre commande, s'il vous plait», dit le garçon."

# Les gateaux allemands sont les meilleurs du monde.
#, java-format
msgid "a piece of cake"
msgid_plural "{0,number} pieces of cake"
msgstr[0] "un morceau de gateau"
msgstr[1] "{0,number} morceaux de gateau"

# Reverse the arguments.
#, java-format
msgid "{0} is replaced by {1}."
msgstr "{1} remplace {0}."
EOF

tmpfiles="$tmpfiles prog_fr.class"
: ${MSGFMT=msgfmt}
${MSGFMT} -j -d . -r prog -l fr fr.po || exit 1

tmpfiles="$tmpfiles prog.out"
: ${MSGUNFMT=msgunfmt}
CLASSPATH=.${CLASSPATH:+:$CLASSPATH} \
GETTEXTJEXEDIR=../src GETTEXTJAR=../src/gettext.jar \
${MSGUNFMT} --java -d . -r prog -l fr -o prog.out || exit 1

tmpfiles="$tmpfiles prog.sort"
: ${MSGCAT=msgcat}
${MSGCAT} -s -o prog.sort prog.out || exit 1

tmpfiles="$tmpfiles prog.ok"
cat <<\EOF > prog.ok
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

msgid "'Your command, please?', asked the waiter."
msgstr "Â«Votre commande, s'il vous plaitÂ», dit le garÃ§on."

msgid "a piece of cake"
msgid_plural "{0,number} pieces of cake"
msgstr[0] "un morceau de gateau"
msgstr[1] "{0,number} morceaux de gateau"

msgid "{0} is replaced by {1}."
msgstr "{1} remplace {0}."
EOF
: ${DIFF=diff}
${DIFF} prog.ok prog.sort || exit 1

rm -fr $tmpfiles

exit 0
