jdk/test/com/sun/jdi/JITDebug.sh
changeset 2 90ce3da70b43
child 4335 365eb4449319
equal deleted inserted replaced
0:fd16c54261b3 2:90ce3da70b43
       
     1 #!/bin/ksh -p
       
     2 
       
     3 #
       
     4 # Copyright 2002-2006 Sun Microsystems, Inc.  All Rights Reserved.
       
     5 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       
     6 #
       
     7 # This code is free software; you can redistribute it and/or modify it
       
     8 # under the terms of the GNU General Public License version 2 only, as
       
     9 # published by the Free Software Foundation.
       
    10 #
       
    11 # This code is distributed in the hope that it will be useful, but WITHOUT
       
    12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       
    13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       
    14 # version 2 for more details (a copy is included in the LICENSE file that
       
    15 # accompanied this code).
       
    16 #
       
    17 # You should have received a copy of the GNU General Public License version
       
    18 # 2 along with this work; if not, write to the Free Software Foundation,
       
    19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       
    20 #
       
    21 # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
       
    22 # CA 95054 USA or visit www.sun.com if you need additional information or
       
    23 # have any questions.
       
    24 #
       
    25 
       
    26 #
       
    27 #   @test       JITDebug.sh 1.7 03/09/05
       
    28 #   @bug        4291701 4376819 4422312 4522770 4913748
       
    29 #   @summary    Test JIT debugging - assure that launching on
       
    30 #               uncaught exception works
       
    31 #   @author     Tim Bell
       
    32 #   Based on test/java/awt/TEMPLATE/AutomaticShellTest.sh
       
    33 #
       
    34 #   @run build TestScaffold VMConnection TargetListener TargetAdapter
       
    35 #   @run compile -g JITDebug.java
       
    36 #   @run shell JITDebug.sh
       
    37 
       
    38 # Beginning of subroutines:
       
    39 status=1
       
    40 
       
    41 #Call this from anywhere to fail the test with an error message
       
    42 # usage: fail "reason why the test failed"
       
    43 fail() 
       
    44  { echo "The test failed :-("
       
    45    echo "$*" 1>&2
       
    46    echo "exit status was $status"
       
    47    exit $status
       
    48  } #end of fail()
       
    49 
       
    50 #Call this from anywhere to pass the test with a message
       
    51 # usage: pass "reason why the test passed if applicable"
       
    52 pass() 
       
    53  { echo "The test passed!!!"
       
    54    echo "$*" 1>&2
       
    55    exit 0
       
    56  } #end of pass()
       
    57 
       
    58 # end of subroutines
       
    59 
       
    60 
       
    61 # The beginning of the script proper
       
    62 
       
    63 OS=`uname -s`
       
    64 export TRANSPORT_METHOD
       
    65 case "$OS" in
       
    66    SunOS | Linux )
       
    67       PATHSEP=":"
       
    68       TRANSPORT_METHOD=dt_socket
       
    69       ;;
       
    70 
       
    71    Windows* | CYGWIN*)
       
    72       PATHSEP=";"
       
    73       TRANSPORT_METHOD=dt_shmem
       
    74       ;;
       
    75 
       
    76    # catch all other OSs
       
    77    * )
       
    78       echo "Unrecognized system!  $OS"
       
    79       fail "Unrecognized system!  $OS"
       
    80       ;;
       
    81 esac
       
    82 #
       
    83 # Want this test to run standalone as well as in the harness, so do the 
       
    84 #  following to copy the test's directory into the harness's scratch directory 
       
    85 #  and set all appropriate variables:
       
    86 
       
    87 if [ -z "${TESTJAVA}" ] ; then
       
    88    # TESTJAVA is not set, so the test is running stand-alone.
       
    89    # TESTJAVA holds the path to the root directory of the build of the JDK
       
    90    # to be tested.  That is, any java files run explicitly in this shell
       
    91    # should use TESTJAVA in the path to the java interpreter.
       
    92    # So, we'll set this to the JDK spec'd on the command line.  If none
       
    93    # is given on the command line, tell the user that and use a default.
       
    94    # THIS IS THE JDK BEING TESTED.
       
    95    if [ -n "$1" ] ; then
       
    96           TESTJAVA=$1
       
    97       else
       
    98 	  TESTJAVA=$JAVA_HOME
       
    99    fi
       
   100    TESTSRC=.
       
   101    TESTCLASSES=.
       
   102    #Deal with .class files:
       
   103    #if running standalone (no test harness of any kind), compile the
       
   104    #support files and the test case
       
   105    ${TESTJAVA}/bin/javac -d ${TESTCLASSES} \
       
   106             -classpath "$TESTJAVA/lib/tools.jar${PATHSEP}." \
       
   107             TestScaffold.java VMConnection.java TargetListener.java TargetAdapter.java
       
   108    ${TESTJAVA}/bin/javac  -d ${TESTCLASSES} \
       
   109             -classpath "$TESTJAVA/lib/tools.jar${PATHSEP}." -g \
       
   110             JITDebug.java
       
   111 fi
       
   112 echo "JDK under test is: $TESTJAVA"
       
   113 #
       
   114 CLASSPATH="$TESTJAVA/lib/tools.jar${PATHSEP}${TESTCLASSES}"
       
   115 export CLASSPATH
       
   116 CP="-classpath \"${CLASSPATH}\""
       
   117 #
       
   118 TARGETCLASS=JITDebug
       
   119 RUNFLAGS='-showversion -DTRANSPORT_METHOD="${TRANSPORT_METHOD}"'
       
   120 RUNFLAGS="-Dtest.classes=${TESTCLASSES} ${RUNFLAGS}"
       
   121 #
       
   122 echo ""
       
   123 echo "Environment variable definitions are:"
       
   124 echo ""
       
   125 env | sort
       
   126 echo ""
       
   127 echo ""
       
   128 #
       
   129 echo "Starting test:"
       
   130 echo ${TESTJAVA}/bin/java -DHANGINGJAVA_DEB ${RUNFLAGS} ${CP} ${TARGETCLASS}
       
   131 eval ${TESTJAVA}/bin/java -DHANGINGJAVA_DEB ${RUNFLAGS} ${CP} ${TARGETCLASS}
       
   132 status=$?
       
   133 if [ $status -ne "0" ];
       
   134 then fail "test failed for class=$TARGETCLASS!"
       
   135 fi
       
   136 #
       
   137 # pass or fail the test based on status of the command
       
   138 if [ $status -eq "0" ];
       
   139    then pass ""
       
   140 
       
   141    else fail "unspecified test failure"
       
   142 fi