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