hotspot/test/runtime/7051189/Xchecksig.sh
changeset 20993 0c5d53cb5264
parent 20992 54817aa17609
parent 19749 892889f44575
child 20994 1169cfaf9f7d
equal deleted inserted replaced
20992:54817aa17609 20993:0c5d53cb5264
     1 # 
       
     2 #  Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
       
     3 #  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       
     4 # 
       
     5 #  This code is free software; you can redistribute it and/or modify it
       
     6 #  under the terms of the GNU General Public License version 2 only, as
       
     7 #  published by the Free Software Foundation.
       
     8 # 
       
     9 #  This code is distributed in the hope that it will be useful, but WITHOUT
       
    10 #  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       
    11 #  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       
    12 #  version 2 for more details (a copy is included in the LICENSE file that
       
    13 #  accompanied this code).
       
    14 # 
       
    15 #  You should have received a copy of the GNU General Public License version
       
    16 #  2 along with this work; if not, write to the Free Software Foundation,
       
    17 #  Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       
    18 # 
       
    19 #  Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
       
    20 #  or visit www.oracle.com if you need additional information or have any
       
    21 #  questions.
       
    22 # 
       
    23 
       
    24  
       
    25 # @test Xchecksig.sh
       
    26 # @bug 7051189
       
    27 # @summary Need to suppress info message if -xcheck:jni used with libjsig.so
       
    28 # @run shell Xchecksig.sh
       
    29 #
       
    30 
       
    31 if [ "${TESTSRC}" = "" ]
       
    32 then
       
    33   TESTSRC=${PWD}
       
    34   echo "TESTSRC not set.  Using "${TESTSRC}" as default"
       
    35 fi
       
    36 echo "TESTSRC=${TESTSRC}"
       
    37 ## Adding common setup Variables for running shell tests.
       
    38 . ${TESTSRC}/../../test_env.sh
       
    39 
       
    40 OS=`uname -s`
       
    41 case "$OS" in
       
    42   Windows_* | CYGWIN_* )
       
    43     printf "Not testing libjsig.so on Windows. PASSED.\n "
       
    44     exit 0
       
    45     ;;
       
    46 esac
       
    47 
       
    48 JAVA=${TESTJAVA}${FS}bin${FS}java
       
    49 
       
    50 # LD_PRELOAD arch needs to match the binary we run, so run the java
       
    51 # 64-bit binary directly if we are testing 64-bit (bin/ARCH/java).
       
    52 # Check if TESTVMOPS contains -d64, but cannot use 
       
    53 # java ${TESTVMOPS} to run "java -d64"  with LD_PRELOAD.
       
    54 
       
    55 if [ ${OS} -eq "SunOS" ]
       
    56 then
       
    57   printf  "SunOS test TESTVMOPTS = ${TESTVMOPTS}"
       
    58   printf ${TESTVMOPTS} | grep d64 > /dev/null
       
    59   if [ $? -eq 0 ]
       
    60   then
       
    61     printf "SunOS 64-bit test\n"
       
    62     BIT_FLAG=-d64
       
    63   fi
       
    64 fi
       
    65 
       
    66 ARCH=`uname -p`
       
    67 case $ARCH in
       
    68   i386)
       
    69     if [ X${BIT_FLAG} != "X" ]
       
    70     then
       
    71       ARCH=amd64
       
    72       JAVA=${TESTJAVA}${FS}bin${FS}${ARCH}${FS}java
       
    73     fi
       
    74     ;;
       
    75   sparc)
       
    76     if [ X${BIT_FLAG} != "X" ]
       
    77     then
       
    78       ARCH=sparcv9
       
    79       JAVA=${TESTJAVA}${FS}bin${FS}${ARCH}${FS}java
       
    80     fi
       
    81     ;;
       
    82   * )
       
    83     printf "Not testing architecture $ARCH, skipping test.\n"
       
    84     exit 0
       
    85   ;; 
       
    86 esac
       
    87 
       
    88 LIBJSIG=${COMPILEJAVA}${FS}jre${FS}lib${FS}${ARCH}${FS}libjsig.so
       
    89 
       
    90 # If libjsig and binary do not match, skip test.
       
    91 
       
    92 A=`file ${LIBJSIG} | awk '{ print $3 }'`
       
    93 B=`file ${JAVA}    | awk '{ print $3 }'`
       
    94 
       
    95 if [ $A -ne $B ]
       
    96 then
       
    97   printf "Mismatching binary and library to preload, skipping test.\n"
       
    98   exit 0
       
    99 fi
       
   100 
       
   101 if [ ! -f ${LIBJSIG} ]
       
   102 then
       
   103   printf "Skipping test: libjsig missing for given architecture: ${LIBJSIG}\n"
       
   104   exit 0
       
   105 fi
       
   106 # Use java -version to test, java version info appears on stderr,
       
   107 # the libjsig message we are removing appears on stdout.
       
   108 
       
   109 # grep returns zero meaning found, non-zero means not found:
       
   110 
       
   111 LD_PRELOAD=${LIBJSIG} ${JAVA} ${TESTVMOPTS} -Xcheck:jni -version 2>&1  | grep "libjsig is activated"
       
   112 if [ $? -eq 0 ]; then
       
   113   printf "Failed: -Xcheck:jni prints message when libjsig.so is loaded.\n"
       
   114   exit 1
       
   115 fi
       
   116 
       
   117 
       
   118 LD_PRELOAD=${LIBJSIG} ${JAVA} ${TESTVMOPTS} -Xcheck:jni -verbose:jni -version 2>&1 | grep "libjsig is activated"
       
   119 if [ $? != 0 ]; then
       
   120   printf "Failed: -Xcheck:jni does not print message when libjsig.so is loaded and -verbose:jni is set.\n"
       
   121   exit 1
       
   122 fi
       
   123 
       
   124 printf "PASSED\n"
       
   125 exit 0
       
   126