PropertiesTest.sh revision 7537:8b84d557570c
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
32if [ "${TESTSRC}" = "" ]
33then
34  echo "TESTSRC not set.  Test cannot execute.  Failed."
35  exit 1
36fi
37echo "TESTSRC=${TESTSRC}"
38if [ "${TESTJAVA}" = "" ]
39then
40  echo "TESTJAVA not set.  Test cannot execute.  Failed."
41  exit 1
42fi
43echo "TESTJAVA=${TESTJAVA}"
44if [ "${TESTCLASSES}" = "" ]
45then
46  echo "TESTCLASSES not set.  Test cannot execute.  Failed."
47  exit 1
48fi
49echo "TESTCLASSES=${TESTCLASSES}"
50echo "CLASSPATH=${CLASSPATH}"
51
52# set platform-dependent variables
53OS=`uname -s`
54case "$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    ;;
72esac
73
74failures=0
75
76run() {
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
82PROPS=${TESTSRC}${FS}currency.properties
83
84
85# Dump built-in currency data
86
87run PropertiesTest -d dump1
88
89
90# Dump built-in currency data + overrides in properties file specified
91# by system property.
92
93run -Djava.util.currency.data=${PROPS} PropertiesTest -d dump2
94run 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.
102COPIED=0
103if [ -w ${TESTJAVA}${FS}jre${FS}lib ]
104then
105  WRITABLEJDK=$TESTJAVA
106  PROPLOCATION=${WRITABLEJDK}${FS}jre${FS}lib
107else
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
118fi
119cp ${PROPS} $PROPLOCATION
120echo "Properties location: ${PROPLOCATION}"
121
122# run
123echo ''
124sh -xc "${WRITABLEJDK}${FS}bin${FS}java ${TESTVMOPTS} -cp ${TESTCLASSES} PropertiesTest -d dump3"
125if [ $? != 0 ]; then failures=`expr $failures + 1`; fi
126
127# Cleanup
128rm -f ${PROPLOCATION}${FS}currency.properties
129if [ $COPIED -eq 1 ]
130then
131  rm -rf $WRITABLEJDK
132fi
133
134# compare the two dump files
135run PropertiesTest -c dump1 dump3 ${PROPS}
136
137
138# Results
139echo ''
140if [ $failures -gt 0 ];
141  then echo "$failures tests failed";
142  else echo "All tests passed"; fi
143exit $failures
144