| #!/bin/sh |
| |
| # Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. |
| # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| # |
| # This code is free software; you can redistribute it and/or modify it |
| # under the terms of the GNU General Public License version 2 only, as |
| # published by the Free Software Foundation. |
| # |
| # This code is distributed in the hope that it will be useful, but WITHOUT |
| # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| # version 2 for more details (a copy is included in the LICENSE file that |
| # accompanied this code). |
| # |
| # You should have received a copy of the GNU General Public License version |
| # 2 along with this work; if not, write to the Free Software Foundation, |
| # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| # |
| # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| # or visit www.oracle.com if you need additional information or have any |
| # questions. |
| |
| # @test JAWT.sh |
| # @bug 7190587 |
| # @summary Tests Java AWT native interface library |
| # @author kshefov |
| # @run shell JAWT.sh |
| |
| # NB: To run on Windows with MKS and Visual Studio compiler |
| # add the following options to jtreg: -e INCLUDE="%INCLUDE%;." -e LIB="%LIB%;." |
| |
| if [ "${TESTSRC}" = "" ] |
| then TESTSRC=. |
| fi |
| |
| if [ "${TESTJAVA}" = "" ] |
| then |
| PARENT=`dirname \`which java\`` |
| TESTJAVA=`dirname ${PARENT}` |
| echo "TESTJAVA not set, selecting " ${TESTJAVA} |
| echo "If this is incorrect, try setting the variable manually." |
| fi |
| |
| # set platform-dependent variables |
| OS=`uname -s` |
| case "$OS" in |
| Linux ) |
| NULL=/dev/null |
| PS=":" |
| FS="/" |
| ${TESTJAVA}${FS}bin${FS}java -version 2>&1 | grep '64-Bit' > $NULL |
| if [ $? -eq '0' ] |
| then |
| ARCH="amd64" |
| else |
| ARCH="i386" |
| fi |
| SYST="linux" |
| MAKEFILE="Makefile.unix" |
| CC="gcc" |
| MAKE="make" |
| LD_LIBRARY_PATH="." |
| ;; |
| SunOS ) |
| NULL=/dev/null |
| PS=":" |
| FS="/" |
| if [ `uname -p | grep -c 'sparc'` -gt '0' ] |
| then |
| ARCH="sparc" |
| else |
| ARCH="i386" |
| fi |
| SYST="solaris" |
| MAKEFILE="Makefile.unix" |
| CC="gcc" |
| MAKE="make" |
| LD_LIBRARY_PATH="." |
| ;; |
| Windows* ) |
| NULL=null |
| PS=";" |
| FS="\\" |
| MAKEFILE="Makefile.win" |
| CC="cl" |
| MAKE="nmake" |
| ${TESTJAVA}${FS}bin${FS}java -d64 -version 2>&1 | grep '64-Bit' > $NULL |
| if [ "$?" -eq '0' ] |
| then |
| ARCH="amd64" |
| else |
| ARCH="i386" |
| fi |
| SYST="windows" |
| ;; |
| CYGWIN* ) |
| NULL=/dev/null |
| PS=":" |
| FS="/" |
| MAKEFILE="Makefile.cygwin" |
| CC="gcc" |
| ${TESTJAVA}${FS}bin${FS}java -d64 -version 2>&1 | grep '64-Bit' > $NULL |
| if [ "$?" -eq '0' ] |
| then |
| ARCH="amd64" |
| else |
| ARCH="i386" |
| fi |
| SYST="cygwin" |
| MAKE="make" |
| ;; |
| Darwin ) |
| echo "Test passed. This test is not for MacOS." |
| exit 0; |
| ;; |
| * ) |
| echo "Unrecognized system!" |
| exit 1; |
| ;; |
| esac |
| |
| # Skip unsupported platforms |
| case `uname -m` in |
| arm* | ppc* ) |
| echo "Test passed. Not supported on current architecture." |
| exit 0 |
| ;; |
| esac |
| |
| echo "OS-ARCH is" ${SYST}-${ARCH} |
| ${TESTJAVA}${FS}jre${FS}bin${FS}java -fullversion 2>&1 |
| |
| which ${MAKE} >${NULL} 2>&1 |
| if [ "$?" -ne '0' ] |
| then |
| echo "No make found. Test passed." |
| exit 0 |
| fi |
| |
| which ${CC} >${NULL} 2>&1 |
| if [ "$?" -ne '0' ] |
| then |
| echo "No C compiler found. Test passed." |
| exit 0 |
| fi |
| case "$OS" in |
| SunOS ) |
| ${CC} -v >${NULL} 2>&1 |
| if [ "$?" -ne '0' ] |
| then |
| echo "No C compiler found. Test passed." |
| exit 0 |
| fi |
| esac |
| |
| cp ${TESTSRC}${FS}${MAKEFILE} . |
| |
| JAVA=${TESTJAVA}${FS}jre${FS}bin${FS}java |
| JAVAC=${TESTJAVA}${FS}bin${FS}javac |
| JAVAH=${TESTJAVA}${FS}bin${FS}javah |
| |
| export CC SYST ARCH LD_LIBRARY_PATH |
| |
| ${JAVAC} -d . ${TESTSRC}${FS}MyCanvas.java |
| ${JAVAH} -jni -classpath . -d . MyCanvas |
| ${MAKE} -f ${MAKEFILE} |
| ${JAVA} -classpath . MyCanvas |
| |
| exit $? |
| |