test/runtime/7051189/Xchecksig.sh

Thu, 20 Sep 2012 13:44:28 -0700

author
katleman
date
Thu, 20 Sep 2012 13:44:28 -0700
changeset 4035
da0d652d0c2f
parent 4022
83b6305a5638
child 4831
04d6d4322c6a
permissions
-rw-r--r--

Added tag jdk8-b57 for changeset d70102c4cb73

     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 # 
    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 #
    31 if [ "${TESTSRC}" = "" ]
    32   then TESTSRC=.
    33 fi
    35 if [ "${TESTJAVA}" = "" ]
    36 then
    37   PARENT=`dirname \`which java\``
    38   TESTJAVA=`dirname ${PARENT}`
    39   printf "TESTJAVA not set, selecting " ${TESTJAVA}
    40   printf "  If this is incorrect, try setting the variable manually.\n"
    41 fi
    44 OS=`uname -s`
    45 case "$OS" in
    46   SunOS | Linux | Darwin )
    47     FS="/"
    48     ;;
    49   Windows_* | CYGWIN_* )
    50     printf "Not testing libjsig.so on Windows. PASSED.\n "
    51     exit 0
    52     ;;
    53   * )
    54     printf "Not testing libjsig.so on unrecognised system. PASSED.\n "
    55     exit 0
    56     ;;
    57 esac
    60 JAVA=${TESTJAVA}${FS}bin${FS}java
    62 # LD_PRELOAD arch needs to match the binary we run, so run the java
    63 # 64-bit binary directly if we are testing 64-bit (bin/ARCH/java).
    64 # Check if TESTVMOPS contains -d64, but cannot use 
    65 # java ${TESTVMOPS} to run "java -d64"  with LD_PRELOAD.
    67 if [ ${OS} -eq "SunOS" ]
    68 then
    69   printf  "SunOS test TESTVMOPTS = ${TESTVMOPTS}"
    70   printf ${TESTVMOPTS} | grep d64 > /dev/null
    71   if [ $? -eq 0 ]
    72   then
    73     printf "SunOS 64-bit test\n"
    74     BIT_FLAG=-d64
    75   fi
    76 fi
    78 ARCH=`uname -p`
    79 case $ARCH in
    80   i386)
    81     if [ X${BIT_FLAG} != "X" ]
    82     then
    83       ARCH=amd64
    84       JAVA=${TESTJAVA}${FS}bin${FS}${ARCH}${FS}java
    85     fi
    86     ;;
    87   sparc)
    88     if [ X${BIT_FLAG} != "X" ]
    89     then
    90       ARCH=sparcv9
    91       JAVA=${TESTJAVA}${FS}bin${FS}${ARCH}${FS}java
    92     fi
    93     ;;
    94   * )
    95     printf "Not testing architecture $ARCH, skipping test.\n"
    96     exit 0
    97   ;; 
    98 esac
   100 LIBJSIG=${TESTJAVA}${FS}jre${FS}lib${FS}${ARCH}${FS}libjsig.so
   102 # If libjsig and binary do not match, skip test.
   104 A=`file ${LIBJSIG} | awk '{ print $3 }'`
   105 B=`file ${JAVA}    | awk '{ print $3 }'`
   107 if [ $A -ne $B ]
   108 then
   109   printf "Mismatching binary and library to preload, skipping test.\n"
   110   exit 0
   111 fi
   113 if [ ! -f ${LIBJSIG} ]
   114 then
   115   printf "Skipping test: libjsig missing for given architecture: ${LIBJSIG}\n"
   116   exit 0
   117 fi
   118 # Use java -version to test, java version info appears on stderr,
   119 # the libjsig message we are removing appears on stdout.
   121 # grep returns zero meaning found, non-zero means not found:
   123 LD_PRELOAD=${LIBJSIG} ${JAVA} ${TESTVMOPTS} -Xcheck:jni -version 2>&1  | grep "libjsig is activated"
   124 if [ $? -eq 0 ]; then
   125   printf "Failed: -Xcheck:jni prints message when libjsig.so is loaded.\n"
   126   exit 1
   127 fi
   130 LD_PRELOAD=${LIBJSIG} ${JAVA} ${TESTVMOPTS} -Xcheck:jni -verbose:jni -version 2>&1 | grep "libjsig is activated"
   131 if [ $? != 0 ]; then
   132   printf "Failed: -Xcheck:jni does not print message when libjsig.so is loaded and -verbose:jni is set.\n"
   133   exit 1
   134 fi
   136 printf "PASSED\n"
   137 exit 0

mercurial