1#!/bin/sh
2
3# Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
4# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5#
6# This code is free software; you can redistribute it and/or modify it
7# under the terms of the GNU General Public License version 2 only, as
8# published by the Free Software Foundation.
9#
10# This code is distributed in the hope that it will be useful, but WITHOUT
11# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13# version 2 for more details (a copy is included in the LICENSE file that
14# accompanied this code).
15#
16# You should have received a copy of the GNU General Public License version
17# 2 along with this work; if not, write to the Free Software Foundation,
18# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19#
20# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21# or visit www.oracle.com if you need additional information or have any
22# questions.
23
24# @test JAWT.sh
25# @key headful
26# @bug 7190587
27# @summary Tests Java AWT native interface library
28# @author kshefov
29# @run shell JAWT.sh
30
31# NB: To run on Windows with MKS and Visual Studio compiler
32# add the following options to jtreg: -e INCLUDE="%INCLUDE%;." -e LIB="%LIB%;."
33
34if [ "${TESTSRC}" = "" ]
35then TESTSRC=.
36fi
37
38if [ "${TESTJAVA}" = "" ]
39then
40  PARENT=`dirname \`which java\``
41  TESTJAVA=`dirname ${PARENT}`
42  echo "TESTJAVA not set, selecting " ${TESTJAVA}
43  echo "If this is incorrect, try setting the variable manually."
44fi
45
46# set platform-dependent variables
47OS=`uname -s`
48case "$OS" in
49  Linux )
50    NULL=/dev/null
51    PS=":"
52    FS="/"
53    ${TESTJAVA}${FS}bin${FS}java -version 2>&1 | grep '64-Bit' > $NULL
54    if [ $? -eq '0' ]
55    then
56        ARCH="amd64"
57    else
58        ARCH="i386"
59    fi
60    SYST="linux"
61    MAKEFILE="Makefile.unix"
62    CC="gcc"
63	MAKE="make"
64	LD_LIBRARY_PATH="."
65    ;;
66  AIX )
67      echo "Test passed. Not supported on AIX."
68      exit 0
69    ;;
70  SunOS )
71    NULL=/dev/null
72    PS=":"
73    FS="/"
74    if [ `uname -p | grep -c 'sparc'` -gt '0' ]
75    then
76        ARCH="sparc"
77    else
78        ARCH="i386"
79    fi
80    SYST="solaris"
81    MAKEFILE="Makefile.unix"
82    CC="gcc"
83	MAKE="make"
84	LD_LIBRARY_PATH="."
85    ;;
86  Windows* )
87    NULL=null
88    PS=";"
89    FS="\\"
90    MAKEFILE="Makefile.win"
91    CC="cl"
92	MAKE="nmake"
93	${TESTJAVA}${FS}bin${FS}java -version 2>&1 | grep '64-Bit' > $NULL
94    if [ "$?" -eq '0' ]
95    then
96        ARCH="amd64"
97    else
98        ARCH="i386"
99    fi
100	SYST="windows"
101    ;;
102  CYGWIN* )
103    NULL=/dev/null
104    PS=":"
105    FS="/"
106    MAKEFILE="Makefile.cygwin"
107    CC="gcc"
108	${TESTJAVA}${FS}bin${FS}java -version 2>&1 | grep '64-Bit' > $NULL
109    if [ "$?" -eq '0' ]
110    then
111        ARCH="amd64"
112    else
113        ARCH="i386"
114    fi
115	SYST="cygwin"
116	MAKE="make"
117    ;;
118  Darwin )
119    echo "Test passed. This test is not for MacOS."
120    exit 0;
121    ;;
122  * )
123    echo "Unrecognized system!"
124    exit 1;
125    ;;
126esac
127
128# Skip unsupported platforms
129case `uname -m` in
130    arm* | ppc* | s390* )
131      echo "Test passed. Not supported on current architecture."
132      exit 0
133      ;;
134esac
135
136echo "OS-ARCH is" ${SYST}-${ARCH}
137${TESTJAVA}${FS}bin${FS}java -fullversion 2>&1
138
139which ${MAKE} >${NULL} 2>&1
140if [ "$?" -ne '0' ]
141then
142    echo "No make found. Test passed."
143    exit 0
144fi
145
146which ${CC} >${NULL} 2>&1
147if [ "$?" -ne '0' ]
148then
149    echo "No C compiler found. Test passed."
150    exit 0
151fi
152case "$OS" in
153    SunOS )
154      ${CC} -v >${NULL} 2>&1
155      if [ "$?" -ne '0' ]
156      then
157          echo "No C compiler found. Test passed."
158          exit 0
159      fi
160esac
161
162cp ${TESTSRC}${FS}${MAKEFILE} .
163
164JAVA=${TESTJAVA}${FS}bin${FS}java
165JAVAC=${TESTJAVA}${FS}bin${FS}javac
166
167export CC SYST ARCH LD_LIBRARY_PATH
168
169${JAVAC} -d . -h . ${TESTSRC}${FS}MyCanvas.java
170${MAKE} -f ${MAKEFILE}
171${JAVA} ${TESTVMOPTS} -classpath . MyCanvas
172
173exit $?
174
175