1 #!/bin/sh 2 # 3 # Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved. 4 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5 # 6 # This code is free software; you can redistribute it and/or modify it 7 # under the terms of the GNU General Public License version 2 only, as 8 # published by the Free Software Foundation. 9 # 10 # This code is distributed in the hope that it will be useful, but WITHOUT 11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13 # version 2 for more details (a copy is included in the LICENSE file that 14 # accompanied this code). 15 # 16 # You should have received a copy of the GNU General Public License version 17 # 2 along with this work; if not, write to the Free Software Foundation, 18 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 19 # 20 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 21 # or visit www.oracle.com if you need additional information or have any 22 # questions. 23 # 24 # 25 # 26 # 27 # This script is the actual launcher of each locale service provider test. 28 # fooprovider.jar contains localized object providers and barprovider.jar 29 # contains localized name providers. This way, we can test providers that 30 # can relate to each other (such as, DateFormatSymbolsProvider and 31 # TimeZoneNameProvider) separately. 32 # 33 # Parameters: 34 # providersToTest: [foo|bar|foobar] 35 # java class name: <class name> 36 # java security policy file: (Optional. Installs security manager if exists) 37 38 if [ "${TESTSRC}" = "" ] 39 then 40 echo "TESTSRC not set. Test cannot execute. Failed." 41 exit 1 42 fi 43 echo "TESTSRC=${TESTSRC}" 44 if [ "${TESTJAVA}" = "" ] 45 then 46 echo "TESTJAVA not set. Test cannot execute. Failed." 47 exit 1 48 fi 49 if [ "${COMPILEJAVA}" = "" ] 50 then 51 COMPILEJAVA="${TESTJAVA}" 52 fi 53 echo "TESTJAVA=${TESTJAVA}" 54 if [ "${TESTCLASSES}" = "" ] 55 then 56 echo "TESTCLASSES not set. Test cannot execute. Failed." 57 exit 1 58 fi 59 echo "TESTCLASSES=${TESTCLASSES}" 60 echo "CLASSPATH=${CLASSPATH}" 61 62 # set platform-dependent variables 63 OS=`uname -s` 64 case "$OS" in 65 SunOS | Linux | Darwin | AIX ) 66 PS=":" 67 FS="/" 68 ;; 69 Windows* | CYGWIN* ) 70 PS=";" 71 FS="\\" 72 ;; 73 * ) 74 echo "Unrecognized system!" 75 exit 1; 76 ;; 77 esac 78 79 case "$1" in 80 "foo" ) 81 cp ${TESTSRC}${FS}fooprovider.jar ${TESTCLASSES} 82 CLASSPATHARG=".${PS}${TESTSRC}${PS}${TESTSRC}${FS}fooprovider.jar" 83 ;; 84 "bar" ) 85 cp ${TESTSRC}${FS}barprovider.jar ${TESTCLASSES} 86 CLASSPATHARG=".${PS}${TESTSRC}${PS}${TESTSRC}${FS}barprovider.jar" 87 ;; 88 "foobar" ) 89 cp ${TESTSRC}${FS}fooprovider.jar ${TESTCLASSES} 90 cp ${TESTSRC}${FS}barprovider.jar ${TESTCLASSES} 91 CLASSPATHARG=".${PS}${TESTSRC}${PS}${TESTSRC}${FS}fooprovider.jar${PS}${TESTSRC}${PS}${TESTSRC}${FS}barprovider.jar" 92 ;; 93 esac 94 95 96 EXTRA_OPTS="--add-exports java.base/sun.util.locale.provider=ALL-UNNAMED \ 97 --add-exports java.base/sun.util.resources=ALL-UNNAMED" 98 99 # compile 100 cp ${TESTSRC}${FS}ProviderTest.java . 101 cp ${TESTSRC}${FS}$2.java . 102 COMPILE="${COMPILEJAVA}${FS}bin${FS}javac ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} ${EXTRA_OPTS} \ 103 -XDignore.symbol.file -d . -classpath ${CLASSPATHARG} $2.java" 104 echo ${COMPILE} 105 ${COMPILE} 106 result=$? 107 108 if [ $result -eq 0 ] 109 then 110 echo "Compilation of the test case was successful." 111 else 112 echo "Compilation of the test case failed." 113 # Cleanup 114 rm -f ${TESTCLASSES}${FS}$2*.class 115 rm -f ${TESTCLASSES}${FS}fooprovider.jar 116 rm -f ${TESTCLASSES}${FS}barprovider.jar 117 exit $result 118 fi 119 120 # security options 121 if [ "$3" != "" ] 122 then 123 SECURITYOPTS="-Djava.security.manager -Djava.security.policy=${TESTSRC}${FS}$3" 124 fi 125 126 # run 127 RUNCMD="${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} ${EXTRA_OPTS} ${SECURITYOPTS} -classpath ${CLASSPATHARG} -Djava.locale.providers=JRE,SPI $2 " 128 129 echo ${RUNCMD} 130 ${RUNCMD} 131 result=$? 132 133 if [ $result -eq 0 ] 134 then 135 echo "Execution successful" 136 else 137 echo "Execution of the test case failed." 138 fi 139 140 # Cleanup 141 rm -f ${TESTCLASSES}${FS}$2*.class 142 rm -f ${TESTCLASSES}${FS}fooprovider.jar 143 rm -f ${TESTCLASSES}${FS}barprovider.jar 144 145 exit $result