1 #
   2 #  Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   3 #  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4 #
   5 
   6 
   7 #
   8 # @test Test7110720.sh
   9 # @bug 7110720
  10 # @summary improve VM configuration file loading
  11 # @run shell Test7110720.sh
  12 #
  13 
  14 if [ "${TESTSRC}" = "" ]
  15 then
  16   TESTSRC=${PWD}
  17   echo "TESTSRC not set.  Using "${TESTSRC}" as default"
  18 fi
  19 echo "TESTSRC=${TESTSRC}"
  20 ## Adding common setup Variables for running shell tests.
  21 . ${TESTSRC}/../../test_env.sh
  22 
  23 # Jtreg sets TESTVMOPTS which may include -d64 which is
  24 # required to test a 64-bit JVM on some platforms.
  25 # If another test harness still creates HOME/JDK64BIT,
  26 # we can recognise that.
  27 
  28 # set platform-dependent variables
  29 OS=`uname -s`
  30 case "$OS" in
  31   SunOS | Linux | Darwin )
  32     FS="/"
  33     RM=/bin/rm
  34     CP=/bin/cp
  35     MV=/bin/mv
  36     ## for solaris, linux it's HOME
  37     FILE_LOCATION=$HOME
  38     if [ -f ${FILE_LOCATION}${FS}JDK64BIT -a ${OS} = "SunOS" ]
  39     then
  40         TESTVMOPTS=`cat ${FILE_LOCATION}${FS}JDK64BIT`
  41     fi
  42     ;;
  43   Windows_* )
  44     FS="\\"
  45     RM=rm
  46     CP=cp
  47     MV=mv
  48     ;;
  49   CYGWIN_* )
  50     FS="/"
  51     RM=rm
  52     CP=cp
  53     MV=mv
  54     ;;
  55   * )
  56     echo "Unrecognized system!"
  57     exit 1;
  58     ;;
  59 esac
  60 
  61 
  62 JAVA=${TESTJAVA}${FS}bin${FS}java
  63 
  64 # Don't test debug builds, they do read the config files:
  65 ${JAVA} ${TESTVMOPTS} -version 2>&1 | grep "debug" >/dev/null
  66 if [ "$?" = "0" ]; then
  67   echo Skipping test for debug build.
  68   exit 0
  69 fi
  70 
  71 ok=yes
  72 
  73 $RM -f .hotspot_compiler .hotspotrc
  74 
  75 ${JAVA} ${TESTVMOPTS} -version 2>&1 | grep "garbage in" >/dev/null
  76 if [ "$?" = "0" ]; then
  77   echo "FAILED: base case failure"
  78   exit 1
  79 fi
  80 
  81 
  82 echo "garbage in, garbage out" > .hotspot_compiler
  83 ${JAVA} ${TESTVMOPTS} -version 2>&1 | grep "garbage in" >/dev/null
  84 if [ "$?" = "0" ]; then
  85   echo "FAILED: .hotspot_compiler was read"
  86   ok=no
  87 fi
  88 
  89 $MV .hotspot_compiler hs_comp.txt
  90 ${JAVA} ${TESTVMOPTS} -XX:CompileCommandFile=hs_comp.txt -version 2>&1 | grep "garbage in" >/dev/null
  91 if [ "$?" = "1" ]; then
  92   echo "FAILED: explicit compiler command file not read"
  93   ok=no
  94 fi
  95 
  96 $RM -f .hotspot_compiler hs_comp.txt
  97 
  98 echo "garbage" > .hotspotrc
  99 ${JAVA} ${TESTVMOPTS} -version 2>&1 | grep "garbage" >/dev/null
 100 if [ "$?" = "0" ]; then
 101   echo "FAILED: .hotspotrc was read"
 102   ok=no
 103 fi
 104 
 105 $MV .hotspotrc hs_flags.txt
 106 ${JAVA} ${TESTVMOPTS} -XX:Flags=hs_flags.txt -version 2>&1 | grep "garbage" >/dev/null
 107 if [ "$?" = "1" ]; then
 108   echo "FAILED: explicit flags file not read"
 109   ok=no
 110 fi
 111 
 112 if [ "${ok}" = "no" ]; then 
 113   echo "Some tests failed."
 114   exit 1
 115 else 
 116   echo "Passed"
 117   exit 0
 118 fi
 119