Mercurial > hg > truffle
annotate test/compiler/8004741/Test8004741.java @ 10194:cbd4ce58f1f3
Merge
author | mgerdin |
---|---|
date | Thu, 02 May 2013 16:41:09 -0700 |
parents | 76341426b645 |
children |
rev | line source |
---|---|
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
1 /* |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
2 * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
4 * |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
7 * published by the Free Software Foundation. |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
8 * |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
12 * version 2 for more details (a copy is included in the LICENSE file that |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
13 * accompanied this code). |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
14 * |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License version |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
16 * 2 along with this work; if not, write to the Free Software Foundation, |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
18 * |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
21 * questions. |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
22 */ |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
23 |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
24 /* |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
25 * @test Test8004741.java |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
26 * @bug 8004741 |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
27 * @summary Missing compiled exception handle table entry for multidimensional array allocation |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
28 * @run main/othervm -Xmx64m -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:-TieredCompilation -XX:+StressCompiledExceptionHandlers -XX:+SafepointALot -XX:GuaranteedSafepointInterval=100 Test8004741 |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
29 * @run main/othervm -Xmx64m -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:-TieredCompilation -XX:+StressCompiledExceptionHandlers Test8004741 |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
30 */ |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
31 |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
32 import java.util.*; |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
33 |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
34 public class Test8004741 extends Thread { |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
35 |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
36 static int passed = 0; |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
37 |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
38 /** |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
39 * Loop forever allocating 2-d arrays. |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
40 * Catches and rethrows all exceptions; in the case of ThreadDeath, increments passed. |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
41 * Note that passed is incremented here because this is the exception handler with |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
42 * the smallest scope; we only want to declare success in the case where it is highly |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
43 * likely that the test condition |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
44 * (exception in 2-d array alloc interrupted by ThreadDeath) |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
45 * actually occurs. |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
46 */ |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
47 static int[][] test(int a, int b) throws Exception { |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
48 int[][] ar; |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
49 try { |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
50 ar = new int[a][b]; |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
51 } catch (ThreadDeath e) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
52 System.out.println("test got ThreadDeath"); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
53 passed++; |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
54 throw(e); |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
55 } |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
56 return ar; |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
57 } |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
58 |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
59 /* Cookbook wait-notify to track progress of test thread. */ |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
60 Object progressLock = new Object(); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
61 private static final int NOT_STARTED = 0; |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
62 private static final int RUNNING = 1; |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
63 private static final int STOPPING = 2; |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
64 |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
65 int progressState = NOT_STARTED; |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
66 |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
67 void toState(int state) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
68 synchronized (progressLock) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
69 progressState = state; |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
70 progressLock.notify(); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
71 } |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
72 } |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
73 |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
74 void waitFor(int state) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
75 synchronized (progressLock) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
76 while (progressState < state) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
77 try { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
78 progressLock.wait(); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
79 } catch (InterruptedException e) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
80 e.printStackTrace(); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
81 System.out.println("unexpected InterruptedException"); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
82 fail(); |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
83 } |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
84 } |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
85 if (progressState > state) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
86 System.out.println("unexpected test state change, expected " + |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
87 state + " but saw " + progressState); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
88 fail(); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
89 } |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
90 } |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
91 } |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
92 |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
93 /** |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
94 * Loops running test until some sort of an exception or error, |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
95 * expects to see ThreadDeath. |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
96 */ |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
97 public void run() { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
98 try { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
99 // Print before state change, so that other thread is most likely |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
100 // to see this thread executing calls to test() in a loop. |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
101 System.out.println("thread running"); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
102 toState(RUNNING); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
103 while (true) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
104 // (2,2) (2,10) (2,100) were observed to tickle the bug; |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
105 test(2, 100); |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
106 } |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
107 } catch (ThreadDeath e) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
108 // nothing to say, passing was incremented by the test. |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
109 } catch (Throwable e) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
110 e.printStackTrace(); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
111 System.out.println("unexpected Throwable " + e); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
112 fail(); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
113 } |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
114 toState(STOPPING); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
115 } |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
116 |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
117 /** |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
118 * Runs a single trial of the test in a thread. |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
119 * No single trial is definitive, since the ThreadDeath |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
120 * exception might not land in the tested region of code. |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
121 */ |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
122 public static void threadTest() throws InterruptedException { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
123 Test8004741 t = new Test8004741(); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
124 t.start(); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
125 t.waitFor(RUNNING); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
126 Thread.sleep(100); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
127 System.out.println("stopping thread"); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
128 t.stop(); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
129 t.waitFor(STOPPING); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
130 t.join(); |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
131 } |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
132 |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
133 public static void main(String[] args) throws Exception { |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
134 // Warm up "test" |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
135 // t will never be started. |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
136 for (int n = 0; n < 11000; n++) { |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
137 test(2, 100); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
138 } |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
139 |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
140 // Will this sleep help ensure that the compiler is run? |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
141 Thread.sleep(500); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
142 passed = 0; |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
143 |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
144 try { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
145 test(-1, 100); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
146 System.out.println("Missing NegativeArraySizeException #1"); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
147 fail(); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
148 } catch ( java.lang.NegativeArraySizeException e ) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
149 System.out.println("Saw expected NegativeArraySizeException #1"); |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
150 } |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
151 |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
152 try { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
153 test(100, -1); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
154 fail(); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
155 System.out.println("Missing NegativeArraySizeException #2"); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
156 fail(); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
157 } catch ( java.lang.NegativeArraySizeException e ) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
158 System.out.println("Saw expected NegativeArraySizeException #2"); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
159 } |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
160 |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
161 /* Test repetitions. If the test succeeds-mostly, it succeeds, |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
162 * as long as it does not crash (the outcome if the exception range |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
163 * table entry for the array allocation is missing). |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
164 */ |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
165 int N = 12; |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
166 for (int n = 0; n < N; n++) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
167 threadTest(); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
168 } |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
169 |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
170 if (passed > N/2) { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
171 System.out.println("Saw " + passed + " out of " + N + " possible ThreadDeath hits"); |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
172 System.out.println("PASSED"); |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
173 } else { |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
174 System.out.println("Too few ThreadDeath hits; expected at least " + N/2 + |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
175 " but saw only " + passed); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
176 fail(); |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
177 } |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
178 } |
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
179 |
7993
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
180 static void fail() { |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
181 System.out.println("FAILED"); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
182 System.exit(97); |
76341426b645
8006500: compiler/8004741/Test8004741.java fails intermediately
drchase
parents:
7428
diff
changeset
|
183 } |
7428
2d6c433b1f38
8004741: Missing compiled exception handle table entry for multidimensional array allocation
kvn
parents:
diff
changeset
|
184 }; |