annotate test/runtime/6888954/vmerrors.sh @ 1592:5b77884bd4b7

6956472: test/runtime/6888954/vmerrors.sh uses ksh-specific syntax Reviewed-by: jmelvin, kvn
author jcoomes
date Thu, 27 May 2010 13:09:56 -0700
parents f03d0a26bf83
children 59b052799158
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1490
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
1 # @test
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
2 # @bug 6888954
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
3 # @summary exercise HotSpot error handling code
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
4 # @author John Coomes
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
5 # @run shell vmerrors.sh
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
6
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
7 # Repeatedly invoke java with a command-line option that causes HotSpot to
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
8 # produce an error report and terminate just after initialization. Each
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
9 # invocation is identified by a small integer, <n>, which provokes a different
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
10 # error (assertion failure, guarantee failure, fatal error, etc.). The output
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
11 # 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
12 # renamed to <n>.log.
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
13 #
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
14 # The automated checking done by this script is minimal. When updating the
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
15 # 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
16 # option with the jtreg so that test directories are not removed automatically.
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
17 # To run stand-alone:
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
18 #
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
19 # TESTJAVA=/java/home/dir
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
20 # TESTVMOPTS=...
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
21 # export TESTJAVA TESTVMOPTS
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
22 # sh test/runtime/6888954/vmerrors.sh
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
23
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
24 ulimit -c 0 # no core files
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
25
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
26 i=1
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
27 rc=0
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
28
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
29 assert_re='(assert|guarantee)[(](str|num).*failed: *'
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
30 guarantee_re='guarantee[(](str|num).*failed: *'
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
31 fatal_re='fatal error: *'
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
32 signal_re='(SIGSEGV|EXCEPTION_ACCESS_VIOLATION).* at pc='
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
33 tail_1='.*expected null'
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
34 tail_2='.*num='
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
35
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
36 for re in \
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
37 "${assert_re}${tail_1}" "${assert_re}${tail_2}" \
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
38 "${guarantee_re}${tail_1}" "${guarantee_re}${tail_2}" \
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
39 "${fatal_re}${tail_1}" "${fatal_re}${tail_2}" \
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
40 "${fatal_re}.*truncated" "ChunkPool::allocate" \
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
41 "ShouldNotCall" "ShouldNotReachHere" \
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
42 "Unimplemented" "$signal_re"
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
43
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
44 do
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
45 i2=$i
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
46 [ $i -lt 10 ] && i2=0$i
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
47
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
48 "$TESTJAVA/bin/java" $TESTVMOPTS -XX:+IgnoreUnrecognizedVMOptions \
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
49 -XX:ErrorHandlerTest=${i} -version > ${i2}.out 2>&1
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
50
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
51 # If ErrorHandlerTest is ignored (product build), stop.
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
52 #
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
53 # 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
54 # windows; use a wildcard instead.
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
55 mv hs_err_pid*.log ${i2}.log || exit $rc
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
56
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
57 for f in ${i2}.log ${i2}.out
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
58 do
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
59 egrep -- "$re" $f > $$
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
60 if [ $? -ne 0 ]
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
61 then
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
62 echo "ErrorHandlerTest=$i failed ($f)"
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
63 rc=1
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
64 fi
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
65 done
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
66 rm -f $$
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
67
1592
5b77884bd4b7 6956472: test/runtime/6888954/vmerrors.sh uses ksh-specific syntax
jcoomes
parents: 1490
diff changeset
68 i=`expr $i + 1`
1490
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
69 done
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
70
f03d0a26bf83 6888954: argument formatting for assert() and friends
jcoomes
parents:
diff changeset
71 exit $rc