annotate test/runtime/ClassFile/OomWhileParsingRepeatedJsr.java @ 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 88d6b9a1c27c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12217
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
1 /*
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
2 * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
4 *
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
7 * published by the Free Software Foundation.
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
8 *
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
13 * accompanied this code).
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
14 *
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
15 * You should have received a copy of the GNU General Public License version
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
18 *
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
21 * questions.
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
22 */
8802
eca90b8a06eb 7030610: runtime/6878713/Test6878713.sh fails Error. failed to clean up files after test
rdurbin
parents: 6635
diff changeset
23
2307
4a9604cd7c5f 6878713: Verifier heap corruption, relating to backward jsrs
kamg
parents:
diff changeset
24
4a9604cd7c5f 6878713: Verifier heap corruption, relating to backward jsrs
kamg
parents:
diff changeset
25
12217
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
26 /*
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
27 * @test OomWhileParsingRepeatedJsr
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
28 * @summary Testing class file parser; specifically parsing
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
29 * a file with repeated JSR (jump local subroutine)
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
30 * bytecode command.
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
31 * @bug 6878713
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
32 * @bug 7030610
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
33 * @bug 7037122
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
34 * @bug 7123945
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
35 * @bug 8016029
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
36 * @library /testlibrary
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
37 * @run main OomWhileParsingRepeatedJsr
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
38 */
8802
eca90b8a06eb 7030610: runtime/6878713/Test6878713.sh fails Error. failed to clean up files after test
rdurbin
parents: 6635
diff changeset
39
12217
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
40 import com.oracle.java.testlibrary.*;
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
41
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
42
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
43 public class OomWhileParsingRepeatedJsr {
8802
eca90b8a06eb 7030610: runtime/6878713/Test6878713.sh fails Error. failed to clean up files after test
rdurbin
parents: 6635
diff changeset
44
12217
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
45 public static void main(String[] args) throws Exception {
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
46
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
47 // ======= Configure the test
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
48 String jarFile = System.getProperty("test.src") + "/testcase.jar";
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
49 String className = "OOMCrashClass1960_2";
2307
4a9604cd7c5f 6878713: Verifier heap corruption, relating to backward jsrs
kamg
parents:
diff changeset
50
12217
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
51 // limit is 768MB in native words
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
52 int mallocMaxTestWords = (1024 * 1024 * 768 / 4);
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
53 if (Platform.is64bit())
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
54 mallocMaxTestWords = (mallocMaxTestWords / 2);
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
55
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
56 // ======= extract the test class
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
57 ProcessBuilder pb = new ProcessBuilder(new String[] {
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
58 JDKToolFinder.getJDKTool("jar"),
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
59 "xvf", jarFile } );
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
60 OutputAnalyzer output = new OutputAnalyzer(pb.start());
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
61 output.shouldHaveExitValue(0);
8802
eca90b8a06eb 7030610: runtime/6878713/Test6878713.sh fails Error. failed to clean up files after test
rdurbin
parents: 6635
diff changeset
62
12217
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
63 // ======= execute the test
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
64 pb = ProcessTools.createJavaProcessBuilder(
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
65 "-cp", ".",
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
66 "-XX:+UnlockDiagnosticVMOptions",
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
67 "-XX:MallocMaxTestWords=" + mallocMaxTestWords,
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
68 className );
8802
eca90b8a06eb 7030610: runtime/6878713/Test6878713.sh fails Error. failed to clean up files after test
rdurbin
parents: 6635
diff changeset
69
12217
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
70 output = new OutputAnalyzer(pb.start());
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
71 output.shouldContain("Cannot reserve enough memory");
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
72 }
88d6b9a1c27c 8016029: test runtime/6878713/Test6878713.sh failed
mseledtsov
parents: 8832
diff changeset
73 }
8802
eca90b8a06eb 7030610: runtime/6878713/Test6878713.sh fails Error. failed to clean up files after test
rdurbin
parents: 6635
diff changeset
74