test/tools/javah/ConstMacroTest.sh

Thu, 25 Aug 2011 17:18:25 -0700

author
schien
date
Thu, 25 Aug 2011 17:18:25 -0700
changeset 1067
f497fac86cf9
parent 554
9d9f26857129
child 1223
f3743b82945e
permissions
-rw-r--r--

Added tag jdk8-b02 for changeset b3c059de2a61

duke@1 1 #!/bin/sh
duke@1 2
duke@1 3 #
ohair@554 4 # Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
duke@1 5 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@1 6 #
duke@1 7 # This code is free software; you can redistribute it and/or modify it
duke@1 8 # under the terms of the GNU General Public License version 2 only, as
duke@1 9 # published by the Free Software Foundation.
duke@1 10 #
duke@1 11 # This code is distributed in the hope that it will be useful, but WITHOUT
duke@1 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@1 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@1 14 # version 2 for more details (a copy is included in the LICENSE file that
duke@1 15 # accompanied this code).
duke@1 16 #
duke@1 17 # You should have received a copy of the GNU General Public License version
duke@1 18 # 2 along with this work; if not, write to the Free Software Foundation,
duke@1 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@1 20 #
ohair@554 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
ohair@554 22 # or visit www.oracle.com if you need additional information or have any
ohair@554 23 # questions.
duke@1 24 #
duke@1 25
duke@1 26 # @test
duke@1 27 #
duke@1 28 # @bug 4786406 4781221 4780341 6214324
duke@1 29
duke@1 30 # Validates rewritten javah handling of class defined constants
duke@1 31 # and ensures that the appropriate macro definitions are placed
duke@1 32 # in the generated header file.
duke@1 33
duke@1 34 if [ "${TESTSRC}" = "" ]
duke@1 35 then
duke@1 36 echo "TESTSRC not set. Test cannot execute. Failed."
duke@1 37 exit 1
duke@1 38 fi
duke@1 39 echo "TESTSRC=${TESTSRC}"
duke@1 40 if [ "${TESTJAVA}" = "" ]
duke@1 41 then
duke@1 42 echo "TESTJAVA not set. Test cannot execute. Failed."
duke@1 43 exit 1
duke@1 44 fi
duke@1 45 echo "TESTJAVA=${TESTJAVA}"
duke@1 46 if [ "${TESTCLASSES}" = "" ]
duke@1 47 then
duke@1 48 echo "TESTCLASSES not set. Test cannot execute. Failed."
duke@1 49 exit 1
duke@1 50 fi
duke@1 51 echo "TESTCLASSES=${TESTCLASSES}"
duke@1 52 echo "CLASSPATH=${CLASSPATH}"
duke@1 53
duke@1 54 EXPECTED_JAVAH_OUT_FILE=SubClassConsts.out
duke@1 55
duke@1 56 # set platform-dependent variables
duke@1 57 OS=`uname -s`
duke@1 58 case "$OS" in
duke@1 59 SunOS | Linux )
duke@1 60 PS=":"
duke@1 61 FS="/"
duke@1 62 ;;
jjg@388 63 CYGWIN* )
jjg@388 64 PS=":"
jjg@388 65 FS="/"
jjg@388 66 DIFFOPTS="--strip-trailing-cr"
jjg@388 67 EXPECTED_JAVAH_OUT_FILE=SubClassConsts.win
jjg@388 68 ;;
duke@1 69 Windows* )
duke@1 70 PS=";"
duke@1 71 FS="\\"
duke@1 72 EXPECTED_JAVAH_OUT_FILE=SubClassConsts.win
duke@1 73 ;;
duke@1 74 * )
duke@1 75 echo "Unrecognized system!"
duke@1 76 exit 1;
duke@1 77 ;;
duke@1 78 esac
duke@1 79
duke@1 80 GENERATED_HEADER_FILE=SubClassConsts.h
duke@1 81 HEADER_FILE_FILTERED=SubClassConsts.h.linefeed-filtered
duke@1 82
duke@1 83 rm -rf SuperClassConsts.class SubClassConsts.class
duke@1 84
duke@1 85 cp "${TESTSRC}${FS}SuperClassConsts.java" .
duke@1 86 cp "${TESTSRC}${FS}SubClassConsts.java" .
duke@1 87
duke@1 88 "${TESTJAVA}${FS}bin${FS}javac" ${TESTTOOLVMOPTS} -d . "${TESTSRC}${FS}SubClassConsts.java"
duke@1 89
duke@1 90 "${TESTJAVA}${FS}bin${FS}javah" ${TESTTOOLVMOPTS} SubClassConsts
duke@1 91
jjg@388 92 diff ${DIFFOPTS} "${TESTSRC}${FS}${EXPECTED_JAVAH_OUT_FILE}" "${GENERATED_HEADER_FILE}"
duke@1 93 result=$?
duke@1 94 rm ${GENERATED_HEADER_FILE}
duke@1 95
duke@1 96 if [ $result -eq 0 ]
duke@1 97 then
duke@1 98 echo "Passed"
duke@1 99 else
duke@1 100 echo "Failed"
duke@1 101 fi
duke@1 102 exit $result

mercurial