1 #!/bin/sh
   2 
   3 # Copyright (c) 2007, 2012, 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 # @test
  26 # @bug 6332666 6863624 7180362 8003846
  27 # @summary tests the capability of replacing the currency data with user
  28 #     specified currency properties file
  29 # @build PropertiesTest
  30 # @run shell/timeout=600 PropertiesTest.sh
  31 
  32 if [ "${TESTSRC}" = "" ]
  33 then
  34   echo "TESTSRC not set.  Test cannot execute.  Failed."
  35   exit 1
  36 fi
  37 echo "TESTSRC=${TESTSRC}"
  38 if [ "${TESTJAVA}" = "" ]
  39 then
  40   echo "TESTJAVA not set.  Test cannot execute.  Failed."
  41   exit 1
  42 fi
  43 echo "TESTJAVA=${TESTJAVA}"
  44 if [ "${TESTCLASSES}" = "" ]
  45 then
  46   echo "TESTCLASSES not set.  Test cannot execute.  Failed."
  47   exit 1
  48 fi
  49 echo "TESTCLASSES=${TESTCLASSES}"
  50 echo "CLASSPATH=${CLASSPATH}"
  51 
  52 # set platform-dependent variables
  53 OS=`uname -s`
  54 case "$OS" in
  55   SunOS | Linux | Darwin )
  56     PS=":"
  57     FS="/"
  58     ;;
  59   Windows* )
  60     PS=";"
  61     FS="/"
  62     ;;
  63   CYGWIN* )
  64     PS=";"
  65     FS="/"
  66     TESTJAVA=`cygpath -u ${TESTJAVA}`
  67     ;;
  68   * )
  69     echo "Unrecognized system!"
  70     exit 1;
  71     ;;
  72 esac
  73 
  74 failures=0
  75 
  76 run() {
  77     echo ''
  78     sh -xc "${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -cp ${TESTCLASSES} $*" 2>&1
  79     if [ $? != 0 ]; then failures=`expr $failures + 1`; fi
  80 }
  81 
  82 PROPS=${TESTSRC}${FS}currency.properties
  83 
  84 
  85 # Dump built-in currency data
  86 
  87 run PropertiesTest -d dump1
  88 
  89 
  90 # Dump built-in currency data + overrides in properties file specified
  91 # by system property.
  92 
  93 run -Djava.util.currency.data=${PROPS} PropertiesTest -d dump2
  94 run PropertiesTest -c dump1 dump2 ${PROPS}
  95 
  96 
  97 # Dump built-in currency data + overrides in properties file copied into
  98 # JRE image.
  99 
 100 # Copy the test properties file. If testjava is not a typical jdk-image
 101 # or testjava is not writable, make a private copy of it.
 102 COPIED=0
 103 if [ -w ${TESTJAVA}${FS}jre${FS}lib ]
 104 then
 105   WRITABLEJDK=$TESTJAVA
 106   PROPLOCATION=${WRITABLEJDK}${FS}jre${FS}lib
 107 else
 108   WRITABLEJDK=.${FS}testjava
 109   if [ -d ${TESTJAVA}${FS}jre ]
 110   then
 111     PROPLOCATION=${WRITABLEJDK}${FS}jre${FS}lib
 112   else
 113     PROPLOCATION=${WRITABLEJDK}${FS}lib
 114   fi
 115   cp -r $TESTJAVA $WRITABLEJDK
 116   chmod -R +w $WRITABLEJDK
 117   COPIED=1
 118 fi
 119 cp ${PROPS} $PROPLOCATION
 120 echo "Properties location: ${PROPLOCATION}"
 121 
 122 # run
 123 echo ''
 124 sh -xc "${WRITABLEJDK}${FS}bin${FS}java ${TESTVMOPTS} -cp ${TESTCLASSES} PropertiesTest -d dump3"
 125 if [ $? != 0 ]; then failures=`expr $failures + 1`; fi
 126 
 127 # Cleanup
 128 rm -f ${PROPLOCATION}${FS}currency.properties
 129 if [ $COPIED -eq 1 ]
 130 then
 131   rm -rf $WRITABLEJDK
 132 fi
 133 
 134 # compare the two dump files
 135 run PropertiesTest -c dump1 dump3 ${PROPS}
 136 
 137 
 138 # Results
 139 echo ''
 140 if [ $failures -gt 0 ];
 141   then echo "$failures tests failed";
 142   else echo "All tests passed"; fi
 143 exit $failures