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