source: trunk/openjdk/langtools/test/tools/javah/MissingParamClassTest.sh

Last change on this file was 278, checked in by dmik, 14 years ago

trunk: Merged in openjdk6 b22 from branches/vendor/oracle.

File size: 3.1 KB
Line 
1#!/bin/sh
2
3#
4# Copyright (c) 2003, 2007, Oracle and/or its affiliates. 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22# or visit www.oracle.com if you need additional information or have any
23# 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
36TMP1=OUTPUT.txt
37
38if [ "${TESTSRC}" = "" ]
39then
40 echo "TESTSRC not set. Test cannot execute. Failed."
41 exit 1
42fi
43echo "TESTSRC=${TESTSRC}"
44if [ "${TESTJAVA}" = "" ]
45then
46 echo "TESTJAVA not set. Test cannot execute. Failed."
47 exit 1
48fi
49echo "TESTJAVA=${TESTJAVA}"
50if [ "${TESTCLASSES}" = "" ]
51then
52 echo "TESTCLASSES not set. Test cannot execute. Failed."
53 exit 1
54fi
55echo "TESTCLASSES=${TESTCLASSES}"
56echo "CLASSPATH=${CLASSPATH}"
57
58# set platform-dependent variables
59OS=`uname -s`
60case "$OS" in
61 SunOS | Linux | CYGWIN* )
62 PS=":"
63 FS="/"
64 ;;
65 Windows* )
66 PS=";"
67 FS="\\"
68 ;;
69 * )
70 echo "Unrecognized system!"
71 exit 1;
72 ;;
73 esac
74
75GENERATED_HEADER_FILE=ParamClassTest.h
76
77rm -f ParamClassTest.class MissingParamClassException.class ParamClassTest.h
78rm -f ${TMP1}
79
80cp ${TESTSRC}${FS}ParamClassTest.java .
81cp ${TESTSRC}${FS}MissingParamClassException.java .
82
83"${TESTJAVA}${FS}bin${FS}javac" ${TESTTOOLVMOPTS} -d . "${TESTSRC}${FS}ParamClassTest.java"
84
85# Before running javah remove dependent class file
86rm -f MissingParamClassException.class
87
88"${TESTJAVA}${FS}bin${FS}javah" ${TESTTOOLVMOPTS} ParamClassTest 2>${TMP1}
89
90if [ -f $GENERATED_HEADER_FILE ]; then
91 echo "Failed"
92 exit 1
93fi
94if [ ! -f ${TMP1} ]; then
95 echo "Failed"
96 exit 1
97else
98 echo "Passed"
99 exit 0
100fi
101
102# Clean out work dir
103rm -f MissingParamClassException.class ParamClassTest.class
104rm -f $GENERATED_HEADER_FILE $TMP1
105
106# Re-compile everything
107"${TESTJAVA}${FS}bin${FS}javac" ${TESTTOOLVMOPTS} -d . ${TESTSRC}${FS}ParamClassTest.java
108
109# Before re-run of javah remove dependent class file Param.class
110rm -f Param.class
111
112"${TESTJAVA}${FS}bin${FS}javah" ${TESTTOOLVMOPTS} ParamClassTest 2>${TMP1}
113
114if [ -f $GENERATED_HEADER_FILE ]; then
115 echo "Failed"
116 exit 1
117fi
118if [ ! -f ${TMP1} ]; then
119 echo "Failed"
120 exit 1
121else
122 echo "Passed"
123 exit 0
124fi
Note: See TracBrowser for help on using the repository browser.