1 #!/bin/sh 2 3 # @test JAWT.sh 4 # @bug 7190587 5 # @summary Tests Java AWT native interface library 6 # @author kshefov 7 # @run shell JAWT.sh 8 9 # NB: To run on Windows with MKS and Visual Studio compiler 10 # add the following options to jtreg: -e INCLUDE="%INCLUDE%;." -e LIB="%LIB%;." 11 12 if [ "${TESTSRC}" = "" ] 13 then TESTSRC=. 14 fi 15 16 if [ "${TESTJAVA}" = "" ] 17 then 18 PARENT=`dirname \`which java\`` 19 TESTJAVA=`dirname ${PARENT}` 20 echo "TESTJAVA not set, selecting " ${TESTJAVA} 21 echo "If this is incorrect, try setting the variable manually." 22 fi 23 24 # set platform-dependent variables 25 OS=`uname -s` 26 case "$OS" in 27 Linux ) 28 NULL=/dev/null 29 PS=":" 30 FS="/" 31 ${TESTJAVA}${FS}bin${FS}java -version 2>&1 | grep '64-Bit' > $NULL 32 if [ $? -eq '0' ] 33 then 34 ARCH="amd64" 35 else 36 ARCH="i386" 37 fi 38 SYST="linux" 39 MAKEFILE="Makefile.unix" 40 CC="gcc" 41 MAKE="make" 42 LD_LIBRARY_PATH="$(TESTJAVA)/jre/lib/$(ARCH):." 43 ;; 44 SunOS ) 45 NULL=/dev/null 46 PS=":" 47 FS="/" 48 if [ `uname -p | grep -c 'sparc'` -gt '0' ] 49 then 50 ARCH="sparc" 51 else 52 ARCH="i386" 53 fi 54 SYST="solaris" 55 MAKEFILE="Makefile.unix" 56 CC="gcc" 57 MAKE="make" 58 LD_LIBRARY_PATH="$(TESTJAVA)/jre/lib/$(ARCH):." 59 ;; 60 Windows* ) 61 NULL=null 62 PS=";" 63 FS="\\" 64 MAKEFILE="Makefile.win" 65 CC="cl" 66 MAKE="nmake" 67 ${TESTJAVA}${FS}bin${FS}java -d64 -version 2>&1 | grep '64-Bit' > $NULL 68 if [ "$?" -eq '0' ] 69 then 70 ARCH="amd64" 71 else 72 ARCH="i386" 73 fi 74 SYST="windows" 75 ;; 76 CYGWIN* ) 77 NULL=/dev/null 78 PS=":" 79 FS="/" 80 MAKEFILE="Makefile.cygwin" 81 CC="g++" 82 ${TESTJAVA}${FS}bin${FS}java -d64 -version 2>&1 | grep '64-Bit' > $NULL 83 if [ "$?" -eq '0' ] 84 then 85 ARCH="amd64" 86 else 87 ARCH="i386" 88 fi 89 SYST="cygwin" 90 MAKE="make" 91 ;; 92 Darwin ) 93 echo "Test passed. This test is not for MacOS." 94 exit 0; 95 ;; 96 * ) 97 echo "Unrecognized system!" 98 exit 1; 99 ;; 100 esac 101 102 # Skip unsupported platforms 103 case `uname -m` in 104 arm* | ppc* ) 105 echo "Test passed. Not supported on current architecture." 106 exit 0 107 ;; 108 esac 109 110 echo "OS-ARCH is" ${SYST}-${ARCH} 111 ${TESTJAVA}${FS}bin${FS}java -fullversion 2>&1 112 113 which ${MAKE} >${NULL} 2>&1 114 if [ "$?" -ne '0' ] 115 then 116 echo "No make found. Test passed." 117 exit 0 118 fi 119 120 which ${CC} >${NULL} 2>&1 121 if [ "$?" -ne '0' ] 122 then 123 echo "No C compiler found. Test passed." 124 exit 0 125 fi 126 case "$OS" in 127 SunOS ) 128 ${CC} -v >${NULL} 2>&1 129 if [ "$?" -ne '0' ] 130 then 131 echo "No C compiler found. Test passed." 132 exit 0 133 fi 134 esac 135 136 cp ${TESTSRC}${FS}${MAKEFILE} . 137 case "$OS" in 138 Windows* | CYGWIN* ) 139 cp ${TESTJAVA}${FS}jre${FS}bin${FS}jawt.dll . 140 ;; 141 esac 142 143 JAVA=${TESTJAVA}${FS}bin${FS}java 144 JAVAC=${TESTJAVA}${FS}bin${FS}javac 145 JAVAH=${TESTJAVA}${FS}bin${FS}javah 146 147 export CC SYST ARCH LD_LIBRARY_PATH 148 149 ${JAVAC} -d . ${TESTSRC}${FS}MyCanvas.java 150 ${JAVAH} -jni -classpath . -d . MyCanvas 151 ${MAKE} -f ${MAKEFILE} 152 ${JAVA} -classpath . MyCanvas 153 154 exit $? 155