# # Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # # @test Test7110720.sh # @bug 7110720 # @summary improve VM configuration file loading # @run shell Test7110720.sh # if [ "${TESTSRC}" = "" ] then TESTSRC=. fi if [ "${TESTJAVA}" = "" ] then PARENT=`dirname \`which java\`` TESTJAVA=`dirname ${PARENT}` echo "TESTJAVA not set, selecting " ${TESTJAVA} echo "If this is incorrect, try setting the variable manually." fi if [ "${TESTCLASSES}" = "" ] then echo "TESTCLASSES not set. Test cannot execute. Failed." exit 1 fi # Jtreg sets TESTVMOPTS which may include -d64 which is # required to test a 64-bit JVM on some platforms. # If another test harness still creates HOME/JDK64BIT, # we can recognise that. # set platform-dependent variables OS=`uname -s` case "$OS" in SunOS | Linux | Darwin ) FS="/" RM=/bin/rm CP=/bin/cp MV=/bin/mv ## for solaris, linux it's HOME FILE_LOCATION=$HOME if [ -f ${FILE_LOCATION}${FS}JDK64BIT -a ${OS} = "SunOS" ] then TESTVMOPTS=`cat ${FILE_LOCATION}${FS}JDK64BIT` fi ;; Windows_* ) FS="\\" RM=rm CP=cp MV=mv ;; * ) echo "Unrecognized system!" exit 1; ;; esac JAVA=${TESTJAVA}${FS}bin${FS}java # Don't test debug builds, they do read the config files: ${JAVA} ${TESTVMOPTS} -version 2>&1 | grep "debug" >/dev/null if [ "$?" = "0" ]; then echo Skipping test for debug build. exit 0 fi ok=yes $RM -f .hotspot_compiler .hotspotrc ${JAVA} ${TESTVMOPTS} -version 2>&1 | grep "garbage in" >/dev/null if [ "$?" = "0" ]; then echo "FAILED: base case failure" exit 1 fi echo "garbage in, garbage out" > .hotspot_compiler ${JAVA} ${TESTVMOPTS} -version 2>&1 | grep "garbage in" >/dev/null if [ "$?" = "0" ]; then echo "FAILED: .hotspot_compiler was read" ok=no fi $MV .hotspot_compiler hs_comp.txt ${JAVA} ${TESTVMOPTS} -XX:CompileCommandFile=hs_comp.txt -version 2>&1 | grep "garbage in" >/dev/null if [ "$?" = "1" ]; then echo "FAILED: explicit compiler command file not read" ok=no fi $RM -f .hotspot_compiler hs_comp.txt echo "garbage" > .hotspotrc ${JAVA} ${TESTVMOPTS} -version 2>&1 | grep "garbage" >/dev/null if [ "$?" = "0" ]; then echo "FAILED: .hotspotrc was read" ok=no fi $MV .hotspotrc hs_flags.txt ${JAVA} ${TESTVMOPTS} -XX:Flags=hs_flags.txt -version 2>&1 | grep "garbage" >/dev/null if [ "$?" = "1" ]; then echo "FAILED: explicit flags file not read" ok=no fi if [ "${ok}" = "no" ]; then echo "Some tests failed." exit 1 else echo "Passed" exit 0 fi