blob: 319c52203243a63f04c561a1025618c700ecc5eb [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001#!/bin/ksh -p
2
3#
4# Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
5# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6#
7# This code is free software; you can redistribute it and/or modify it
8# under the terms of the GNU General Public License version 2 only, as
9# published by the Free Software Foundation.
10#
11# This code is distributed in the hope that it will be useful, but WITHOUT
12# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14# version 2 for more details (a copy is included in the LICENSE file that
15# accompanied this code).
16#
17# You should have received a copy of the GNU General Public License version
18# 2 along with this work; if not, write to the Free Software Foundation,
19# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20#
21# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22# CA 95054 USA or visit www.sun.com if you need additional information or
23# have any questions.
24#
25
26#
27# @test ShowExitTest.sh
28# @bug 6513421
29# @summary Java process does not terminate on closing the Main Application Frame
30#
31# @compile ShowExitTest.java
32# @run shell/timeout=60 ShowExitTest.sh
33
34# NOTE: The following error message means that the regression test failed:
35# "Execution failed: Program `sh' interrupted! (timed out?)"
36
37# Beginning of subroutines:
38status=1
39
40#Call this from anywhere to fail the test with an error message
41# usage: fail "reason why the test failed"
42fail()
43 { echo "The test failed :-("
44 echo "$*" 1>&2
45 echo "exit status was $status"
46 exit $status
47 } #end of fail()
48
49#Call this from anywhere to pass the test with a message
50# usage: pass "reason why the test passed if applicable"
51pass()
52 { echo "The test passed!!!"
53 echo "$*" 1>&2
54 exit 0
55 } #end of pass()
56
57# end of subroutines
58
59
60# The beginning of the script proper
61
62# Checking for proper OS
63OS=`uname -s`
64case "$OS" in
65 SunOS )
66 VAR="One value for Sun"
67 DEFAULT_JDK=/usr/local/java/jdk1.2/solaris
68 FILESEP="/"
69 ;;
70
71 Linux )
72 VAR="A different value for Linux"
73 DEFAULT_JDK=/usr/local/java/jdk1.4/linux-i386
74 FILESEP="/"
75 ;;
76
77 Windows_95 | Windows_98 | Windows_NT | Windows_ME )
78 VAR="A different value for Win32"
79 DEFAULT_JDK=/usr/local/java/jdk1.2/win32
80 FILESEP="\\"
81 ;;
82
83 # catch all other OSs
84 * )
85 echo "Unrecognized system! $OS"
86 fail "Unrecognized system! $OS"
87 ;;
88esac
89
90
91# Want this test to run standalone as well as in the harness, so do the
92# following to copy the test's directory into the harness's scratch directory
93# and set all appropriate variables:
94
95if [ -z "${TESTJAVA}" ] ; then
96 # TESTJAVA is not set, so the test is running stand-alone.
97 # TESTJAVA holds the path to the root directory of the build of the JDK
98 # to be tested. That is, any java files run explicitly in this shell
99 # should use TESTJAVA in the path to the java interpreter.
100 # So, we'll set this to the JDK spec'd on the command line. If none
101 # is given on the command line, tell the user that and use a cheesy
102 # default.
103 # THIS IS THE JDK BEING TESTED.
104 if [ -n "$1" ] ;
105 then TESTJAVA=$1
106 else echo "no JDK specified on command line so using default!"
107 TESTJAVA=$DEFAULT_JDK
108 fi
109 TESTSRC=.
110 TESTCLASSES=.
111 STANDALONE=1;
112fi
113echo "JDK under test is: $TESTJAVA"
114
115#Deal with .class files:
116if [ -n "${STANDALONE}" ] ;
117 then
118 #if standalone, remind user to cd to dir. containing test before running it
119 echo "Just a reminder: cd to the dir containing this test when running it"
120 # then compile all .java files (if there are any) into .class files
121 if [ -a *.java ] ;
122 then echo "Reminder, this test should be in its own directory with all"
123 echo "supporting files it needs in the directory with it."
124 ${TESTJAVA}/bin/javac ./*.java ;
125 fi
126 # else in harness so copy all the class files from where jtreg put them
127 # over to the scratch directory this test is running in.
128 else cp ${TESTCLASSES}/*.class . ;
129fi
130
131#if in test harness, then copy the entire directory that the test is in over
132# to the scratch directory. This catches any support files needed by the test.
133if [ -z "${STANDALONE}" ] ;
134 then cp ${TESTSRC}/* .
135fi
136
137#Just before executing anything, make sure it has executable permission!
138chmod 777 ./*
139
140############### YOUR TEST CODE HERE!!!!!!! #############
141
142#All files required for the test should be in the same directory with
143# this file. If converting a standalone test to run with the harness,
144# as long as all files are in the same directory and it returns 0 for
145# pass, you should be able to cut and paste it into here and it will
146# run with the test harness.
147
148${TESTJAVA}/bin/java ShowExitTest
149
150############### END YOUR TEST CODE !!!!! ############
151#Be sure the last command executed above this line returns 0 for success,
152# something non-zero for failure.
153status=$?
154
155# pass or fail the test based on status of the command
156if [ $status -eq "0" ];
157 then pass ""
158
159 else fail "The program didn't terminate automatically!"
160fi
161
162#For additional examples of how to write platform independent KSH scripts,
163# see the jtreg file itself. It is a KSH script for both Solaris and Win32
164