langtools/test/tools/javah/MissingParamClassTest.sh
changeset 10 06bc494ca11e
child 3770 12d0e59df0fb
equal deleted inserted replaced
0:fd16c54261b3 10:06bc494ca11e
       
     1 #!/bin/sh
       
     2 
       
     3 #
       
     4 # Copyright 2003-2007 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 # @test	
       
    27 #
       
    28 # @bug 4942232
       
    29 
       
    30 #
       
    31 # Verifies that javah won't attempt to generate a header file
       
    32 # if a native method in a supplied class contains a parameter
       
    33 # type whose corresponding class is missing or not in the 
       
    34 # classpath
       
    35 
       
    36 TMP1=OUTPUT.txt
       
    37 
       
    38 if [ "${TESTSRC}" = "" ]
       
    39 then
       
    40   echo "TESTSRC not set.  Test cannot execute.  Failed."
       
    41   exit 1
       
    42 fi
       
    43 echo "TESTSRC=${TESTSRC}"
       
    44 if [ "${TESTJAVA}" = "" ]
       
    45 then
       
    46   echo "TESTJAVA not set.  Test cannot execute.  Failed."
       
    47   exit 1
       
    48 fi
       
    49 echo "TESTJAVA=${TESTJAVA}"
       
    50 if [ "${TESTCLASSES}" = "" ]
       
    51 then
       
    52   echo "TESTCLASSES not set.  Test cannot execute.  Failed."
       
    53   exit 1
       
    54 fi
       
    55 echo "TESTCLASSES=${TESTCLASSES}"
       
    56 echo "CLASSPATH=${CLASSPATH}"
       
    57 
       
    58 # set platform-dependent variables
       
    59 OS=`uname -s`
       
    60 case "$OS" in
       
    61   SunOS | Linux )
       
    62     NULL=/dev/null
       
    63     PS=":"
       
    64     FS="/"
       
    65     ;;
       
    66   Windows* )
       
    67     NULL=NUL
       
    68     PS=";"
       
    69     FS="\\"
       
    70     ;;
       
    71   * )
       
    72     echo "Unrecognized system!"
       
    73     exit 1;
       
    74     ;;
       
    75  esac
       
    76 
       
    77 GENERATED_HEADER_FILE=ParamClassTest.h
       
    78 
       
    79 rm -f ParamClassTest.class MissingParamClassException.class ParamClassTest.h
       
    80 rm -f ${TMP1}
       
    81 
       
    82 cp ${TESTSRC}${FS}ParamClassTest.java .
       
    83 cp ${TESTSRC}${FS}MissingParamClassException.java .
       
    84 
       
    85 "${TESTJAVA}${FS}bin${FS}javac" ${TESTTOOLVMOPTS} -d . "${TESTSRC}${FS}ParamClassTest.java"
       
    86 
       
    87 # Before running javah remove dependent class file
       
    88 rm -f MissingParamClassException.class 
       
    89 
       
    90 "${TESTJAVA}${FS}bin${FS}javah" ${TESTTOOLVMOPTS} ParamClassTest 2>${TMP1}
       
    91 
       
    92 if [ -f $GENERATED_HEADER_FILE ]; then
       
    93      echo "Failed"
       
    94      exit 1
       
    95 fi
       
    96 if [ ! -f ${TMP1} ]; then
       
    97      echo "Failed"
       
    98      exit 1
       
    99 else
       
   100      echo "Passed"
       
   101      exit 0
       
   102 fi
       
   103 
       
   104 # Clean out work dir
       
   105 rm -f MissingParamClassException.class ParamClassTest.class
       
   106 rm -f $GENERATED_HEADER_FILE $TMP1 
       
   107 
       
   108 # Re-compile everything
       
   109 "${TESTJAVA}${FS}bin${FS}javac" ${TESTTOOLVMOPTS}  -d . ${TESTSRC}${FS}ParamClassTest.java
       
   110 
       
   111 # Before re-run of javah remove dependent class file Param.class 
       
   112 rm -f Param.class
       
   113 
       
   114 "${TESTJAVA}${FS}bin${FS}javah" ${TESTTOOLVMOPTS} ParamClassTest 2>${TMP1}
       
   115 
       
   116 if [ -f $GENERATED_HEADER_FILE ]; then
       
   117      echo "Failed"
       
   118      exit 1
       
   119 fi
       
   120 if [ ! -f ${TMP1} ]; then
       
   121      echo "Failed"
       
   122      exit 1
       
   123 else
       
   124      echo "Passed"
       
   125      exit 0
       
   126 fi