jdk/test/java/util/ResourceBundle/modules/basic/basic.sh
changeset 36511 9d0388c6b336
child 40261 86a49ba76f52
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/ResourceBundle/modules/basic/basic.sh	Thu Mar 17 19:04:16 2016 +0000
@@ -0,0 +1,89 @@
+#
+# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# @test
+# @bug 8044767 8139067
+# @summary Basic test case for ResourceBundle with modules;
+#          ResourceBundle.getBundle caller is in module named "test",
+#          resource bundles are grouped in main (module "mainbundles"),
+#          EU (module "eubundles"), and Asia (module "asiabundles").
+#          Also adds a jar file containing resource bundles to the class path.
+
+set -e
+
+if [ -z "$TESTJAVA" ]; then
+  if [ $# -lt 1 ]; then exit 1; fi
+  TESTJAVA="$1"; shift
+  COMPILEJAVA="${TESTJAVA}"
+  TESTSRC="`pwd`"
+  TESTCLASSES="`pwd`"
+fi
+
+JAVAC="$COMPILEJAVA/bin/javac"
+JAR="$COMPILEJAVA/bin/jar"
+JAVA="$TESTJAVA/bin/java"
+
+rm -rf mods
+
+CP=
+for I in main eu asia
+do
+  B=${I}bundles
+  mkdir -p mods/$B
+  CLASSES="`find $TESTSRC/src/$B -name '*.java'`"
+  if [ "x$CLASSES" != x ]; then
+    $JAVAC -g -d mods -modulesourcepath $TESTSRC/src $CP $CLASSES
+  fi
+  PROPS="`(cd $TESTSRC/src/$B; find . -name '*.properties')`"
+  if [ "x$PROPS" != x ]; then
+      for P in $PROPS
+      do
+        D=`dirname $P`
+        mkdir -p mods/$B/$D
+        cp $TESTSRC/src/$B/$P mods/$B/$D/
+      done
+  fi
+  CP="-cp mods/mainbundles"
+done
+
+mkdir -p mods/test
+$JAVAC -g -cp mods/mainbundles -d mods -modulesourcepath $TESTSRC/src \
+    `find $TESTSRC/src/test -name "*.java"`
+
+# Create a jar to be added to the class path. Expected only properties files are
+# picked up from the class path.
+rm -f extra.jar
+mkdir -p classes
+$JAVAC -d classes $TESTSRC/src/extra/jdk/test/resources/eu/*.java
+$JAR -cf extra.jar -C classes jdk/test/resources/eu \
+                   -C $TESTSRC/src/extra jdk/test/resources/asia
+
+STATUS=0
+
+echo "jdk.test.Main should load bundles using ResourceBundleProviders."
+$JAVA -mp mods -m test/jdk.test.Main de fr ja ja-jp zh-tw en de ja-jp || STATUS=1
+
+echo "jdk.test.Main should NOT load bundles from the jar file specified by the class-path."
+$JAVA -cp extra.jar -mp mods -m test/jdk.test.Main es vi && STATUS=1
+
+exit $STATUS