test/runtime/6929067/Test6929067.sh

Mon, 28 Jul 2014 15:06:38 -0700

author
fzhinkin
date
Mon, 28 Jul 2014 15:06:38 -0700
changeset 6997
dbb05f6d93c4
parent 6133
e567d5afd4dd
child 6876
710a3c8b516e
permissions
-rw-r--r--

8051344: JVM crashed in Compile::start() during method parsing w/ UseRTMDeopt turned on
Summary: call rtm_deopt() only if there were no compilation bailouts before.
Reviewed-by: kvn

     1 #!/bin/sh
     3 ##
     4 ## @ignore 8028740
     5 ## @test Test6929067.sh
     6 ## @bug 6929067
     7 ## @bug 8021296
     8 ## @summary Stack guard pages should be removed when thread is detached
     9 ## @compile T.java
    10 ## @run shell Test6929067.sh
    11 ##
    12 set -x
    13 if [ "${TESTSRC}" = "" ]
    14 then
    15   TESTSRC=${PWD}
    16   echo "TESTSRC not set.  Using "${TESTSRC}" as default"
    17 fi
    18 echo "TESTSRC=${TESTSRC}"
    19 ## Adding common setup Variables for running shell tests.
    20 . ${TESTSRC}/../../test_env.sh
    22 # set platform-dependent variables
    23 OS=`uname -s`
    24 case "$OS" in
    25   Linux)
    26     gcc_cmd=`which gcc`
    27     if [ "x$gcc_cmd" == "x" ]; then
    28         echo "WARNING: gcc not found. Cannot execute test." 2>&1
    29         exit 0;
    30     fi
    31     NULL=/dev/null
    32     PS=":"
    33     FS="/"
    34     ;;
    35   * )
    36     echo "Test passed; only valid for Linux"
    37     exit 0;
    38     ;;
    39 esac
    41 ${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -Xinternalversion > vm_version.out 2>&1 
    43 # Bitness:
    44 # Cannot simply look at TESTVMOPTS as -d64 is not
    45 # passed if there is only a 64-bit JVM available.
    47 grep "64-Bit" vm_version.out > ${NULL}
    48 if [ "$?" = "0" ]
    49 then
    50   COMP_FLAG="-m64"
    51 else
    52   COMP_FLAG="-m32"
    53 fi
    56 # Architecture:
    57 # Translate uname output to JVM directory name, but permit testing
    58 # 32-bit x86 on an x64 platform.
    59 ARCH=`uname -m`
    60 case "$ARCH" in
    61   x86_64)
    62     if [ "$COMP_FLAG" = "-m32" ]; then
    63       ARCH=i386
    64     else 
    65       ARCH=amd64
    66     fi
    67     ;;
    68   ppc64)
    69     if [ "$COMP_FLAG" = "-m32" ]; then
    70       ARCH=ppc
    71     else 
    72       ARCH=ppc64
    73     fi
    74     ;;
    75   sparc64)
    76     if [ "$COMP_FLAG" = "-m32" ]; then
    77       ARCH=sparc
    78     else 
    79       ARCH=sparc64
    80     fi
    81     ;;
    82   arm*)
    83     # 32-bit ARM machine: compiler may not recognise -m32
    84     COMP_FLAG=""
    85     ARCH=arm
    86     ;;
    87   aarch64)
    88     # 64-bit arm machine, could be testing 32 or 64-bit:
    89     if [ "$COMP_FLAG" = "-m32" ]; then
    90       ARCH=arm
    91     else 
    92       ARCH=aarch64
    93     fi
    94     ;;
    95   i586)
    96     ARCH=i386
    97     ;;
    98   i686)
    99     ARCH=i386
   100     ;;
   101   # Assuming other ARCH values need no translation
   102 esac
   105 # VM type: need to know server or client
   106 VMTYPE=client
   107 grep Server vm_version.out > ${NULL}
   108 if [ "$?" = "0" ]
   109 then
   110   VMTYPE=server
   111 fi
   114 LD_LIBRARY_PATH=.:${COMPILEJAVA}/jre/lib/${ARCH}/${VMTYPE}:/usr/lib:$LD_LIBRARY_PATH
   115 export LD_LIBRARY_PATH
   117 cp ${TESTSRC}${FS}invoke.c .
   119 # Copy the result of our @compile action:
   120 cp ${TESTCLASSES}${FS}T.class .
   122 echo "Architecture: ${ARCH}"
   123 echo "Compilation flag: ${COMP_FLAG}"
   124 echo "VM type: ${VMTYPE}"
   125 # Note pthread may not be found thus invoke creation will fail to be created.
   126 # Check to ensure you have a /usr/lib/libpthread.so if you don't please look
   127 # for /usr/lib/`uname -m`-linux-gnu version ensure to add that path to below compilation.
   129 $gcc_cmd -DLINUX ${COMP_FLAG} -o invoke \
   130     -I${COMPILEJAVA}/include -I${COMPILEJAVA}/include/linux \
   131     -L${COMPILEJAVA}/jre/lib/${ARCH}/${VMTYPE} \
   132     -ljvm -lpthread invoke.c
   134 ./invoke
   135 exit $?

mercurial