annotate test/runtime/6888954/vmerrors.sh @ 12986:1b422ef5288a

8025728: Missing volatile specifier for field G1AllocRegion::_alloc_region Summary: The field G1AllocRegion::_alloc_region needs to be declared volatile as it is used with that intention. Otherwise the compiler may generate the code that reloads the value which might have changed in the meantime, leading to spurious crashes. Reviewed-by: iveresov, simonis, tschatzl Contributed-by: Axel Siebenborn <axel.siebenborn@sap.com>
author tschatzl
date Wed, 23 Oct 2013 10:23:06 +0200
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