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