ExpirationTest.sh revision 2362
2362N/A# Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. 0N/A# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A# This code is free software; you can redistribute it and/or modify it 0N/A# under the terms of the GNU General Public License version 2 only, as 0N/A# published by the Free Software Foundation. 0N/A# This code is distributed in the hope that it will be useful, but WITHOUT 0N/A# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A# version 2 for more details (a copy is included in the LICENSE file that 0N/A# accompanied this code). 0N/A# You should have received a copy of the GNU General Public License version 0N/A# 2 along with this work; if not, write to the Free Software Foundation, 0N/A# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 0N/A# @bug 4212439 5102289 6272156 0N/A# @summary Tests for expiration control and reloading expired resource bundles. 0N/A# @build ExpirationTest 0N/A# Timings of the test sequence 0N/A# 0 5 7 10 20 40 [seconds] 0N/A# +---------+----+------+------//------+------//------+-- 0N/A# g X g X U g [event] 0N/A# 0 g - java starts; the first getBundle call gets "German"; 0N/A# 5 X - the bundle expires (every 5 seconds) 0N/A# 7 g - java wakes up; the second getBundle call still gets "German"; 0N/A# 10 X - the bundle expires in the cache 0N/A# 20 U - shell script updates DE and add AT 0N/A# 40 g - java wakes up; third getBundle call; gets "Deutsch" 0N/A# event: g - getBundle, X - eXpire, U - Update 0N/A# 2 - can't proceed due to slow platform 0N/A# Check environment variables 0N/A 1>&
2 echo "No TESTJAVA defined. exiting..." 0N/A# Make sure that this test is run in C locale 0N/A# YES if the platform has %s support in date 0N/A# Interval until resources are updated 0N/A (echo "data: Japanese"; echo "january: 1gatsu") > $JA 0N/A (echo "data: German"; echo "january: Januar") > $DE 0N/A echo "Properties files have been created at `date +%T`" 0N/A F="${DATA}*.properties" 0N/A F="-C classes ${ROOT}.class -C classes ${JA}.class -C classes ${DE}.class" 0N/Apublic class $1 extends ListResourceBundle { 0N/A public Object[][] getContents() { 0N/A return new Object[][] { 0N/A { \"data\", \"$2\" }," 0N/A if [ "x$3" != "x" ]; then 0N/A echo " { \"january\", \"$3\" }," 0N/A (echo "data=Deutsch"; echo "january=Januar") > $DE 0N/A echo "january=J\u00e4nner" > $AT 0N/A echo "Updated '"${DE}"' and added '"${AT}"' at `date +%T`" 0N/A echo "Updated '"${DE}"' class and added '"${AT}"' class at `date +%T`" 0N/A F="-C classes ${DE}.class -C classes ${AT}.class" 0N/A # Returns an approximation of the offset from the Epoch in 0N/A awk '{d=($1-1970)*365.2425; print int(((((((d+$2-1)*24)+$3)*60)+$3)*60)+$5);}' 0N/A# Execute $1 and check how long it takes 0N/A # If this machine is too slow, give up the further testing. 0N/A 1>&2 echo "This machine took $D seconds to prepare test data," \ 0N/A "which is too slow to proceed. Exiting..." 0N/A elif [ $1 != 2 ]; then 0N/A # Just we should't proceed to avoid timing issues. 0N/A# Tests for properties 0N/A# Test with plain files (properties) 0N/Aecho "Starting test with properties files at `date +%T`" 0N/A# Creates properties files 0N/A# Execute a child process which will update files in $INTERVAL seconds. 0N/A# Test with jar file if jar is available (properties) 0N/A echo "Starting test with a jar file (properties) at `date +%T`" 0N/A # Create a jar files with properties 0N/A# Note: class-based resource bundles can't be reloaded due to the 0N/A# cache support in class loaders. So the results of the test cases 0N/A# below are not checked. (Test cases always pass.) 0N/A# If there's no javac available, then give up the test with 0N/A# class-based properties. 0N/Aecho "Starting test with class files at `date +%T`" 0N/A echo "Starting test with a jar file (class) at `date +%T`" 0N/A # Create a jar file with class files