annotate test/runtime/6888954/vmerrors.sh @ 21815:37179dcf830a

Merge
author asaha
date Mon, 20 Oct 2014 23:02:07 -0700
parents cc4f5f8d885e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12822
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
1 # Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
2 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
3 #
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
4 # This code is free software; you can redistribute it and/or modify it
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
5 # under the terms of the GNU General Public License version 2 only, as
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
6 # published by the Free Software Foundation.
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
7 #
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
8 # This code is distributed in the hope that it will be useful, but WITHOUT
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
9 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
10 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
11 # version 2 for more details (a copy is included in the LICENSE file that
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
12 # accompanied this code).
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
13 #
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
14 # You should have received a copy of the GNU General Public License version
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
15 # 2 along with this work; if not, write to the Free Software Foundation,
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
16 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
17 #
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
18 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
19 # or visit www.oracle.com if you need additional information or have any
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
20 # questions.
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
21 #
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
22
1490
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
23 # @test
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
24 # @bug 6888954
11092
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
25 # @bug 8015884
1490
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
26 # @summary exercise HotSpot error handling code
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
27 # @author John Coomes
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
28 # @run shell vmerrors.sh
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
29
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
30 # Repeatedly invoke java with a command-line option that causes HotSpot to
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
31 # produce an error report and terminate just after initialization. Each
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
32 # invocation is identified by a small integer, <n>, which provokes a different
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
33 # error (assertion failure, guarantee failure, fatal error, etc.). The output
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
34 # from stdout/stderr is written to <n>.out and the hs_err_pidXXX.log file is
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
35 # renamed to <n>.log.
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
36 #
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
37 # The automated checking done by this script is minimal. When updating the
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
38 # fatal error handler it is more useful to run it manually or to use the -retain
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
39 # option with the jtreg so that test directories are not removed automatically.
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
40 # To run stand-alone:
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
41 #
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
42 # TESTJAVA=/java/home/dir
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
43 # TESTVMOPTS=...
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
44 # export TESTJAVA TESTVMOPTS
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
45 # sh test/runtime/6888954/vmerrors.sh
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
46
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
47 ulimit -c 0 # no core files
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
48
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
49 i=1
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
50 rc=0
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
51
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
52 assert_re='(assert|guarantee)[(](str|num).*failed: *'
11092
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
53 # for bad_data_ptr_re:
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
54 # EXCEPTION_ACCESS_VIOLATION - Win-*
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
55 # SIGILL - MacOS X
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
56 # SIGSEGV - Linux-*, Solaris SPARC-*, Solaris X86-*
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
57 #
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
58 bad_data_ptr_re='(SIGILL|SIGSEGV|EXCEPTION_ACCESS_VIOLATION).* at pc='
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
59 #
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
60 # for bad_func_ptr_re:
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
61 # EXCEPTION_ACCESS_VIOLATION - Win-*
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
62 # SIGBUS - Solaris SPARC-64
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
63 # SIGSEGV - Linux-*, Solaris SPARC-32, Solaris X86-*
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
64 #
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
65 # Note: would like to use "pc=0x00*0f," in the pattern, but Solaris SPARC-*
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
66 # gets its signal at a PC in test_error_handler().
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
67 #
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
68 bad_func_ptr_re='(SIGBUS|SIGSEGV|EXCEPTION_ACCESS_VIOLATION).* at pc='
1490
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
69 guarantee_re='guarantee[(](str|num).*failed: *'
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
70 fatal_re='fatal error: *'
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
71 tail_1='.*expected null'
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
72 tail_2='.*num='
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
73
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
74 for re in \
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
75 "${assert_re}${tail_1}" "${assert_re}${tail_2}" \
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
76 "${guarantee_re}${tail_1}" "${guarantee_re}${tail_2}" \
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
77 "${fatal_re}${tail_1}" "${fatal_re}${tail_2}" \
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
78 "${fatal_re}.*truncated" "ChunkPool::allocate" \
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
79 "ShouldNotCall" "ShouldNotReachHere" \
11092
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
80 "Unimplemented" "$bad_data_ptr_re" \
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
81 "$bad_func_ptr_re"
59b052799158 8015884: runThese crashed with SIGSEGV, hs_err has an error instead of stacktrace
dcubed
parents: 1592
diff changeset
82
1490
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
83 do
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
84 i2=$i
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
85 [ $i -lt 10 ] && i2=0$i
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
86
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
87 "$TESTJAVA/bin/java" $TESTVMOPTS -XX:+IgnoreUnrecognizedVMOptions \
12822
cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh
mseledtsov
parents: 11092
diff changeset
88 -XX:-TransmitErrorReport \
1490
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
89 -XX:ErrorHandlerTest=${i} -version > ${i2}.out 2>&1
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
90
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
91 # If ErrorHandlerTest is ignored (product build), stop.
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
92 #
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
93 # Using the built-in variable $! to get the pid does not work reliably on
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
94 # windows; use a wildcard instead.
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
95 mv hs_err_pid*.log ${i2}.log || exit $rc
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
96
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
97 for f in ${i2}.log ${i2}.out
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
98 do
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
99 egrep -- "$re" $f > $$
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
100 if [ $? -ne 0 ]
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
101 then
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
102 echo "ErrorHandlerTest=$i failed ($f)"
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
103 rc=1
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
104 fi
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
105 done
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
106 rm -f $$
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
107
1592
5b77884bd4b7 6956472: test/runtime/6888954/vmerrors.sh uses ksh-specific syntax
jcoomes
parents: 1490
diff changeset
108 i=`expr $i + 1`
1490
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
109 done
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
110
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
111 exit $rc