Mercurial > hg > truffle
annotate graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierVerificationTest.java @ 11760:ce0b00597980
made safepoint-on-return use specialized HotSpot runtime support for such safepoints (which have no debug info attached)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 24 Sep 2013 08:51:02 +0200 |
parents | 65cedae2647e |
children | d55fb90c1f12 |
rev | line source |
---|---|
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
1 /* |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
4 * |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
7 * published by the Free Software Foundation. |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
8 * |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
12 * version 2 for more details (a copy is included in the LICENSE file that |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
13 * accompanied this code). |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
14 * |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License version |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
16 * 2 along with this work; if not, write to the Free Software Foundation, |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
18 * |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
21 * questions. |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
22 */ |
10440
7a0d4d95f84c
moved write barrier tests to graal.hotspot.test and removed the graal.compiler.test -> graal.hotspot dependency
Doug Simon <doug.simon@oracle.com>
parents:
10090
diff
changeset
|
23 package com.oracle.graal.hotspot.test; |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
24 |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
25 import java.util.*; |
9531
63b4cea1ed3f
suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
26 import java.util.concurrent.*; |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
27 |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
28 import org.junit.*; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
29 |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
30 import com.oracle.graal.api.code.*; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
31 import com.oracle.graal.api.meta.*; |
10440
7a0d4d95f84c
moved write barrier tests to graal.hotspot.test and removed the graal.compiler.test -> graal.hotspot dependency
Doug Simon <doug.simon@oracle.com>
parents:
10090
diff
changeset
|
32 import com.oracle.graal.compiler.test.*; |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
33 import com.oracle.graal.debug.*; |
9531
63b4cea1ed3f
suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
34 import com.oracle.graal.debug.internal.*; |
10616
1d245cc635e3
Augment Write Barrier Verification Test for G1
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10440
diff
changeset
|
35 import com.oracle.graal.hotspot.meta.*; |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
36 import com.oracle.graal.hotspot.phases.*; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
37 import com.oracle.graal.nodes.*; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
38 import com.oracle.graal.nodes.extended.*; |
9511
715f82d1f695
Enable the loop safepoint elimination.
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
9442
diff
changeset
|
39 import com.oracle.graal.phases.*; |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
40 import com.oracle.graal.phases.common.*; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
41 import com.oracle.graal.phases.graph.*; |
9526
ae5cd887e67c
Use a LocationIdentity interface instead of just Object for the location identity of a LocationNode
Christian Wimmer <christian.wimmer@oracle.com>
parents:
9511
diff
changeset
|
42 import com.oracle.graal.phases.graph.ReentrantNodeIterator.NodeIteratorClosure; |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
43 import com.oracle.graal.phases.tiers.*; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
44 |
9398
9a30199f7ff6
Add comments to write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9397
diff
changeset
|
45 /** |
9a30199f7ff6
Add comments to write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9397
diff
changeset
|
46 * The following tests validate the write barrier verification phase. For every tested snippet, an |
9a30199f7ff6
Add comments to write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9397
diff
changeset
|
47 * array of write barrier indices and the total write barrier number are passed as parameters. The |
9a30199f7ff6
Add comments to write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9397
diff
changeset
|
48 * indices denote the barriers that will be manually removed. The write barrier verification phase |
9a30199f7ff6
Add comments to write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9397
diff
changeset
|
49 * runs after the write barrier removal and depending on the result an assertion might be generated. |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
50 * The tests anticipate the presence or not of an assertion generated by the verification phase. |
9398
9a30199f7ff6
Add comments to write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9397
diff
changeset
|
51 */ |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
52 public class WriteBarrierVerificationTest extends GraalCompilerTest { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
53 |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
54 public static int barrierIndex; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
55 |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
56 public static class Container { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
57 |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
58 public Container a; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
59 public Container b; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
60 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
61 |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
62 private static native void safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
63 |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
64 public static void test1Snippet() { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
65 Container main = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
66 Container temp1 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
67 Container temp2 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
68 barrierIndex = 0; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
69 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
70 barrierIndex = 1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
71 main.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
72 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
73 barrierIndex = 2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
74 main.b = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
75 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
76 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
77 |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
78 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
79 public void test1() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
80 test("test1Snippet", 2, new int[]{1}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
81 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
82 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
83 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
84 public void test2() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
85 test("test1Snippet", 2, new int[]{2}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
86 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
87 |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
88 public static void test2Snippet() { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
89 Container main = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
90 Container temp1 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
91 Container temp2 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
92 barrierIndex = 0; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
93 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
94 barrierIndex = 1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
95 main.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
96 barrierIndex = 2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
97 main.b = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
98 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
99 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
100 |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
101 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
102 public void test3() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
103 test("test2Snippet", 2, new int[]{1}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
104 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
105 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
106 @Test |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
107 public void test4() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
108 test("test2Snippet", 2, new int[]{2}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
109 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
110 |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
111 public static void test3Snippet(boolean test) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
112 Container main = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
113 Container temp1 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
114 Container temp2 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
115 barrierIndex = 0; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
116 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
117 for (int i = 0; i < 10; i++) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
118 if (test) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
119 barrierIndex = 1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
120 main.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
121 barrierIndex = 2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
122 main.b = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
123 } else { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
124 barrierIndex = 3; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
125 main.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
126 barrierIndex = 4; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
127 main.b = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
128 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
129 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
130 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
131 |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
132 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
133 public void test5() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
134 test("test3Snippet", 4, new int[]{1, 2}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
135 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
136 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
137 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
138 public void test6() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
139 test("test3Snippet", 4, new int[]{3, 4}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
140 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
141 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
142 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
143 public void test7() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
144 test("test3Snippet", 4, new int[]{1}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
145 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
146 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
147 @Test |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
148 public void test8() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
149 test("test3Snippet", 4, new int[]{2}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
150 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
151 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
152 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
153 public void test9() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
154 test("test3Snippet", 4, new int[]{3}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
155 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
156 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
157 @Test |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
158 public void test10() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
159 test("test3Snippet", 4, new int[]{4}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
160 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
161 |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
162 public static void test4Snippet(boolean test) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
163 Container main = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
164 Container temp1 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
165 Container temp2 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
166 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
167 barrierIndex = 1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
168 main.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
169 for (int i = 0; i < 10; i++) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
170 if (test) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
171 barrierIndex = 2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
172 main.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
173 barrierIndex = 3; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
174 main.b = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
175 } else { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
176 barrierIndex = 4; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
177 main.a = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
178 barrierIndex = 5; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
179 main.b = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
180 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
181 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
182 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
183 |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
184 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
185 public void test11() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
186 test("test4Snippet", 5, new int[]{2, 3}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
187 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
188 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
189 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
190 public void test12() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
191 test("test4Snippet", 5, new int[]{4, 5}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
192 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
193 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
194 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
195 public void test13() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
196 test("test4Snippet", 5, new int[]{1}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
197 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
198 |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
199 public static void test5Snippet() { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
200 Container main = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
201 Container temp1 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
202 Container temp2 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
203 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
204 barrierIndex = 1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
205 main.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
206 if (main.a == main.b) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
207 barrierIndex = 2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
208 main.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
209 barrierIndex = 3; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
210 main.b = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
211 } else { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
212 barrierIndex = 4; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
213 main.a = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
214 barrierIndex = 5; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
215 main.b = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
216 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
217 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
218 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
219 |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
220 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
221 public void test14() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
222 test("test5Snippet", 5, new int[]{1}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
223 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
224 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
225 @Test |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
226 public void test15() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
227 test("test5Snippet", 5, new int[]{2}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
228 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
229 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
230 @Test |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
231 public void test16() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
232 test("test5Snippet", 5, new int[]{4}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
233 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
234 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
235 @Test |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
236 public void test17() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
237 test("test5Snippet", 5, new int[]{3}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
238 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
239 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
240 @Test |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
241 public void test18() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
242 test("test5Snippet", 5, new int[]{5}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
243 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
244 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
245 @Test |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
246 public void test19() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
247 test("test5Snippet", 5, new int[]{2, 3}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
248 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
249 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
250 @Test |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
251 public void test20() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
252 test("test5Snippet", 5, new int[]{4, 5}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
253 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
254 |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
255 public static void test6Snippet(boolean test) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
256 Container main = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
257 Container temp1 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
258 Container temp2 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
259 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
260 barrierIndex = 1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
261 main.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
262 if (test) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
263 barrierIndex = 2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
264 main.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
265 barrierIndex = 3; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
266 main.b = temp1.a.a; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
267 } else { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
268 barrierIndex = 4; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
269 main.a = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
270 barrierIndex = 5; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
271 main.b = temp2.a.a; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
272 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
273 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
274 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
275 |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
276 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
277 public void test21() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
278 test("test6Snippet", 5, new int[]{1}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
279 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
280 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
281 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
282 public void test22() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
283 test("test6Snippet", 5, new int[]{1, 2}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
284 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
285 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
286 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
287 public void test23() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
288 test("test6Snippet", 5, new int[]{3}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
289 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
290 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
291 @Test |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
292 public void test24() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
293 test("test6Snippet", 5, new int[]{4}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
294 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
295 |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
296 public static void test7Snippet(boolean test) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
297 Container main = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
298 Container temp1 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
299 Container temp2 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
300 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
301 barrierIndex = 1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
302 main.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
303 if (test) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
304 barrierIndex = 2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
305 main.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
306 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
307 barrierIndex = 3; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
308 main.b = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
309 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
310 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
311 |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
312 @Test |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
313 public void test25() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
314 test("test7Snippet", 3, new int[]{2}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
315 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
316 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
317 @Test |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
318 public void test26() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
319 test("test7Snippet", 3, new int[]{3}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
320 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
321 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
322 @Test |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
323 public void test27() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
324 test("test7Snippet", 3, new int[]{2, 3}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
325 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
326 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
327 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
328 public void test28() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
329 test("test7Snippet", 3, new int[]{1}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
330 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
331 |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
332 public static void test8Snippet(boolean test) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
333 Container main = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
334 Container temp1 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
335 Container temp2 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
336 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
337 if (test) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
338 barrierIndex = 1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
339 main.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
340 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
341 barrierIndex = 2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
342 main.b = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
343 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
344 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
345 |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
346 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
347 public void test29() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
348 test("test8Snippet", 2, new int[]{1}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
349 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
350 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
351 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
352 public void test30() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
353 test("test8Snippet", 2, new int[]{2}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
354 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
355 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
356 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
357 public void test31() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
358 test("test8Snippet", 2, new int[]{1, 2}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
359 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
360 |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
361 public static void test9Snippet(boolean test) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
362 Container main1 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
363 Container main2 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
364 Container temp1 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
365 Container temp2 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
366 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
367 if (test) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
368 barrierIndex = 1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
369 main1.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
370 } else { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
371 barrierIndex = 2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
372 main2.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
373 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
374 barrierIndex = 3; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
375 main1.b = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
376 barrierIndex = 4; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
377 main2.b = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
378 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
379 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
380 |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
381 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
382 public void test32() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
383 test("test9Snippet", 4, new int[]{1}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
384 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
385 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
386 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
387 public void test33() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
388 test("test9Snippet", 4, new int[]{2}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
389 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
390 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
391 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
392 public void test34() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
393 test("test9Snippet", 4, new int[]{3}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
394 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
395 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
396 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
397 public void test35() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
398 test("test9Snippet", 4, new int[]{4}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
399 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
400 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
401 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
402 public void test36() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
403 test("test9Snippet", 4, new int[]{1, 2}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
404 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
405 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
406 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
407 public void test37() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
408 test("test9Snippet", 4, new int[]{3, 4}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
409 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
410 |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
411 public static void test10Snippet(boolean test) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
412 Container main1 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
413 Container main2 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
414 Container temp1 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
415 Container temp2 = new Container(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
416 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
417 if (test) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
418 barrierIndex = 1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
419 main1.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
420 barrierIndex = 2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
421 main2.a = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
422 } else { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
423 barrierIndex = 3; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
424 main2.a = temp1; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
425 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
426 barrierIndex = 4; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
427 main1.b = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
428 barrierIndex = 5; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
429 main2.b = temp2; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
430 safepoint(); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
431 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
432 |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
433 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
434 public void test38() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
435 test("test10Snippet", 5, new int[]{1}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
436 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
437 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
438 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
439 public void test39() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
440 test("test10Snippet", 5, new int[]{2}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
441 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
442 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
443 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
444 public void test40() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
445 test("test10Snippet", 5, new int[]{3}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
446 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
447 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
448 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
449 public void test41() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
450 test("test10Snippet", 5, new int[]{4}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
451 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
452 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
453 @Test |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
454 public void test42() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
455 test("test10Snippet", 5, new int[]{5}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
456 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
457 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
458 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
459 public void test43() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
460 test("test10Snippet", 5, new int[]{1, 2}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
461 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
462 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
463 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
464 public void test44() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
465 test("test10Snippet", 5, new int[]{1, 2, 3}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
466 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
467 |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
468 @Test(expected = AssertionError.class) |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
469 public void test45() { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
470 test("test10Snippet", 5, new int[]{3, 4}); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
471 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
472 |
9397
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
473 public static void test11Snippet(boolean test) { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
474 Container main1 = new Container(); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
475 Container main2 = new Container(); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
476 Container main3 = new Container(); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
477 Container temp1 = new Container(); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
478 Container temp2 = new Container(); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
479 safepoint(); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
480 if (test) { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
481 barrierIndex = 1; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
482 main1.a = temp1; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
483 barrierIndex = 2; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
484 main3.a = temp1; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
485 if (!test) { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
486 barrierIndex = 3; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
487 main2.a = temp2; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
488 } else { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
489 barrierIndex = 4; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
490 main1.a = temp2; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
491 barrierIndex = 5; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
492 main3.a = temp2; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
493 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
494 } else { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
495 barrierIndex = 6; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
496 main1.b = temp2; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
497 for (int i = 0; i < 10; i++) { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
498 barrierIndex = 7; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
499 main3.a = temp1; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
500 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
501 barrierIndex = 8; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
502 main3.b = temp2; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
503 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
504 barrierIndex = 9; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
505 main1.b = temp2; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
506 barrierIndex = 10; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
507 main2.b = temp2; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
508 barrierIndex = 11; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
509 main3.b = temp2; |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
510 safepoint(); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
511 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
512 |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
513 @Test(expected = AssertionError.class) |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
514 public void test46() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
515 test("test11Snippet", 11, new int[]{1}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
516 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
517 |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
518 @Test(expected = AssertionError.class) |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
519 public void test47() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
520 test("test11Snippet", 11, new int[]{2}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
521 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
522 |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
523 @Test(expected = AssertionError.class) |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
524 public void test48() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
525 test("test11Snippet", 11, new int[]{3}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
526 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
527 |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
528 @Test(expected = AssertionError.class) |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
529 public void test49() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
530 test("test11Snippet", 11, new int[]{6}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
531 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
532 |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
533 @Test(expected = AssertionError.class) |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
534 public void test50() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
535 test("test11Snippet", 11, new int[]{7}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
536 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
537 |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
538 @Test(expected = AssertionError.class) |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
539 public void test51() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
540 test("test11Snippet", 11, new int[]{8}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
541 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
542 |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
543 @Test(expected = AssertionError.class) |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
544 public void test52() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
545 test("test11Snippet", 11, new int[]{9}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
546 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
547 |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
548 @Test(expected = AssertionError.class) |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
549 public void test53() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
550 test("test11Snippet", 11, new int[]{10}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
551 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
552 |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
553 @Test |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
554 public void test54() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
555 test("test11Snippet", 11, new int[]{4}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
556 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
557 |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
558 @Test |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
559 public void test55() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
560 test("test11Snippet", 11, new int[]{5}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
561 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
562 |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
563 @Test |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
564 public void test56() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
565 test("test11Snippet", 11, new int[]{11}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
566 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
567 |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
568 public static void test12Snippet(boolean test) { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
569 Container main = new Container(); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
570 Container main1 = new Container(); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
571 Container temp1 = new Container(); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
572 Container temp2 = new Container(); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
573 barrierIndex = 0; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
574 safepoint(); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
575 barrierIndex = 7; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
576 main1.a = temp1; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
577 for (int i = 0; i < 10; i++) { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
578 if (test) { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
579 barrierIndex = 1; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
580 main.a = temp1; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
581 barrierIndex = 2; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
582 main.b = temp2; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
583 } else { |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
584 barrierIndex = 3; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
585 main.a = temp1; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
586 barrierIndex = 4; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
587 main.b = temp2; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
588 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
589 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
590 barrierIndex = 5; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
591 main.a = temp1; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
592 barrierIndex = 6; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
593 main.b = temp1; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
594 barrierIndex = 8; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
595 main1.b = temp1; |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
596 safepoint(); |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
597 } |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
598 |
9397
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
599 @Test(expected = AssertionError.class) |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
600 public void test57() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
601 test("test12Snippet", 8, new int[]{5}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
602 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
603 |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
604 @Test |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
605 public void test58() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
606 test("test12Snippet", 8, new int[]{6}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
607 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
608 |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
609 @Test(expected = AssertionError.class) |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
610 public void test59() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
611 test("test12Snippet", 8, new int[]{7}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
612 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
613 |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
614 @Test(expected = AssertionError.class) |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
615 public void test60() { |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
616 test("test12Snippet", 8, new int[]{8}); |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
617 } |
05b8bfa40086
Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9395
diff
changeset
|
618 |
10775
0a8f1eefce51
Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10616
diff
changeset
|
619 public static void test13Snippet(Object[] a, Object[] b) { |
0a8f1eefce51
Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10616
diff
changeset
|
620 System.arraycopy(a, 0, b, 0, a.length); |
0a8f1eefce51
Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10616
diff
changeset
|
621 } |
0a8f1eefce51
Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10616
diff
changeset
|
622 |
0a8f1eefce51
Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10616
diff
changeset
|
623 @Test |
0a8f1eefce51
Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10616
diff
changeset
|
624 public void test61() { |
0a8f1eefce51
Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10616
diff
changeset
|
625 test("test13Snippet", 1, new int[]{}); |
0a8f1eefce51
Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10616
diff
changeset
|
626 } |
0a8f1eefce51
Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10616
diff
changeset
|
627 |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
628 private void test(final String snippet, final int expectedBarriers, final int... removedBarrierIndices) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
629 |
9531
63b4cea1ed3f
suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
630 AssertionError expectedError = Debug.scope("WriteBarrierVerificationTest", new DebugDumpScope(snippet), new Callable<AssertionError>() { |
63b4cea1ed3f
suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
631 |
63b4cea1ed3f
suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
632 public AssertionError call() { |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
633 final StructuredGraph graph = parse(snippet); |
10931
a9db73ccb7b9
Add more fields to HighTierContext.
Roland Schatz <roland.schatz@oracle.com>
parents:
10776
diff
changeset
|
634 HighTierContext highTierContext = new HighTierContext(runtime(), new Assumptions(false), replacements, null, getDefaultPhasePlan(), OptimisticOptimizations.ALL); |
11567
c69df2e602f4
Use CanonicalizerPhase.applyIncremental in InliningPhase.
Roland Schatz <roland.schatz@oracle.com>
parents:
11566
diff
changeset
|
635 new InliningPhase(new CanonicalizerPhase(true)).apply(graph, highTierContext); |
10775
0a8f1eefce51
Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10616
diff
changeset
|
636 |
9916
491cd7d69539
CanonicalizerPhase: remove it from context, add it to tiers instead and configure/pass it there (GRAAL-309)
Bernhard Urban <bernhard.urban@jku.at>
parents:
9909
diff
changeset
|
637 MidTierContext midTierContext = new MidTierContext(runtime(), new Assumptions(false), replacements, runtime().getTarget(), OptimisticOptimizations.ALL); |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
638 |
11584 | 639 new LoweringPhase(new CanonicalizerPhase(true)).apply(graph, highTierContext); |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
640 new GuardLoweringPhase().apply(graph, midTierContext); |
11760
ce0b00597980
made safepoint-on-return use specialized HotSpot runtime support for such safepoints (which have no debug info attached)
Doug Simon <doug.simon@oracle.com>
parents:
11584
diff
changeset
|
641 new LoopSafepointInsertionPhase().apply(graph); |
11584 | 642 new LoweringPhase(new CanonicalizerPhase(true)).apply(graph, highTierContext); |
10775
0a8f1eefce51
Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10616
diff
changeset
|
643 |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
644 new WriteBarrierAdditionPhase().apply(graph); |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
645 |
10616
1d245cc635e3
Augment Write Barrier Verification Test for G1
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10440
diff
changeset
|
646 int barriers = 0; |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
647 // First, the total number of expected barriers is checked. |
10616
1d245cc635e3
Augment Write Barrier Verification Test for G1
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10440
diff
changeset
|
648 if (((HotSpotRuntime) runtime()).config.useG1GC) { |
10775
0a8f1eefce51
Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10616
diff
changeset
|
649 barriers = graph.getNodes(G1PreWriteBarrier.class).count() + graph.getNodes(G1PostWriteBarrier.class).count() + graph.getNodes(G1ArrayRangePreWriteBarrier.class).count() + |
0a8f1eefce51
Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10616
diff
changeset
|
650 graph.getNodes(G1ArrayRangePostWriteBarrier.class).count(); |
10616
1d245cc635e3
Augment Write Barrier Verification Test for G1
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10440
diff
changeset
|
651 Assert.assertTrue(expectedBarriers * 2 == barriers); |
1d245cc635e3
Augment Write Barrier Verification Test for G1
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10440
diff
changeset
|
652 } else { |
10775
0a8f1eefce51
Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10616
diff
changeset
|
653 barriers = graph.getNodes(SerialWriteBarrier.class).count() + graph.getNodes(SerialArrayRangeWriteBarrier.class).count(); |
10616
1d245cc635e3
Augment Write Barrier Verification Test for G1
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10440
diff
changeset
|
654 Assert.assertTrue(expectedBarriers == barriers); |
1d245cc635e3
Augment Write Barrier Verification Test for G1
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10440
diff
changeset
|
655 } |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
656 // Iterate over all write nodes and remove barriers according to input indices. |
9623
76c40c3f6bb7
let ReentrantNodeIterator.processNode return the next state
Lukas Stadler <lukas.stadler@jku.at>
parents:
9531
diff
changeset
|
657 NodeIteratorClosure<Boolean> closure = new NodeIteratorClosure<Boolean>() { |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
658 |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
659 @Override |
9623
76c40c3f6bb7
let ReentrantNodeIterator.processNode return the next state
Lukas Stadler <lukas.stadler@jku.at>
parents:
9531
diff
changeset
|
660 protected Boolean processNode(FixedNode node, Boolean currentState) { |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
661 if (node instanceof WriteNode) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
662 WriteNode write = (WriteNode) node; |
10090
ae6f0c381087
split MemoryCheckpoint interface into Single and Multi
Lukas Stadler <lukas.stadler@jku.at>
parents:
9916
diff
changeset
|
663 LocationIdentity obj = write.getLocationIdentity(); |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
664 if (obj instanceof ResolvedJavaField) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
665 if (((ResolvedJavaField) obj).getName().equals("barrierIndex")) { |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
666 /* |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
667 * A "barrierIndex" variable was found and is checked against |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
668 * the input barrier array. |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
669 */ |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
670 if (eliminateBarrier(write.value().asConstant().asInt(), removedBarrierIndices)) { |
9623
76c40c3f6bb7
let ReentrantNodeIterator.processNode return the next state
Lukas Stadler <lukas.stadler@jku.at>
parents:
9531
diff
changeset
|
671 return true; |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
672 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
673 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
674 } |
10616
1d245cc635e3
Augment Write Barrier Verification Test for G1
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10440
diff
changeset
|
675 } else if (node instanceof SerialWriteBarrier || node instanceof G1PostWriteBarrier) { |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
676 // Remove flagged write barriers. |
9623
76c40c3f6bb7
let ReentrantNodeIterator.processNode return the next state
Lukas Stadler <lukas.stadler@jku.at>
parents:
9531
diff
changeset
|
677 if (currentState) { |
10616
1d245cc635e3
Augment Write Barrier Verification Test for G1
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10440
diff
changeset
|
678 graph.removeFixed(((FixedWithNextNode) node)); |
9623
76c40c3f6bb7
let ReentrantNodeIterator.processNode return the next state
Lukas Stadler <lukas.stadler@jku.at>
parents:
9531
diff
changeset
|
679 return false; |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
680 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
681 } |
9623
76c40c3f6bb7
let ReentrantNodeIterator.processNode return the next state
Lukas Stadler <lukas.stadler@jku.at>
parents:
9531
diff
changeset
|
682 return currentState; |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
683 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
684 |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
685 private boolean eliminateBarrier(int index, int[] map) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
686 for (int i = 0; i < map.length; i++) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
687 if (map[i] == index) { |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
688 return true; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
689 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
690 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
691 return false; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
692 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
693 |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
694 @Override |
9623
76c40c3f6bb7
let ReentrantNodeIterator.processNode return the next state
Lukas Stadler <lukas.stadler@jku.at>
parents:
9531
diff
changeset
|
695 protected Map<LoopExitNode, Boolean> processLoop(LoopBeginNode loop, Boolean initialState) { |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
696 return ReentrantNodeIterator.processLoop(this, loop, initialState).exitStates; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
697 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
698 |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
699 @Override |
9623
76c40c3f6bb7
let ReentrantNodeIterator.processNode return the next state
Lukas Stadler <lukas.stadler@jku.at>
parents:
9531
diff
changeset
|
700 protected Boolean merge(MergeNode merge, List<Boolean> states) { |
76c40c3f6bb7
let ReentrantNodeIterator.processNode return the next state
Lukas Stadler <lukas.stadler@jku.at>
parents:
9531
diff
changeset
|
701 return false; |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
702 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
703 |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
704 @Override |
9623
76c40c3f6bb7
let ReentrantNodeIterator.processNode return the next state
Lukas Stadler <lukas.stadler@jku.at>
parents:
9531
diff
changeset
|
705 protected Boolean afterSplit(AbstractBeginNode node, Boolean oldState) { |
76c40c3f6bb7
let ReentrantNodeIterator.processNode return the next state
Lukas Stadler <lukas.stadler@jku.at>
parents:
9531
diff
changeset
|
706 return false; |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
707 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
708 }; |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
709 |
9531
63b4cea1ed3f
suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
710 DebugConfig config = DebugScope.getConfig(); |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
711 try { |
9623
76c40c3f6bb7
let ReentrantNodeIterator.processNode return the next state
Lukas Stadler <lukas.stadler@jku.at>
parents:
9531
diff
changeset
|
712 ReentrantNodeIterator.apply(closure, graph.start(), false, null); |
9531
63b4cea1ed3f
suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
713 Debug.setConfig(Debug.fixedConfig(false, false, false, false, config.dumpHandlers(), config.output())); |
10776
f587a69c63ae
Minor refactoring
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
10775
diff
changeset
|
714 new WriteBarrierVerificationPhase().apply(graph); |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
715 } catch (AssertionError error) { |
9405
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
716 /* |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
717 * Catch assertion, test for expected one and re-throw in order to validate unit |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
718 * test. |
5618a717b8ad
Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
9400
diff
changeset
|
719 */ |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
720 Assert.assertTrue(error.getMessage().equals("Write barrier must be present")); |
9531
63b4cea1ed3f
suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
721 return error; |
63b4cea1ed3f
suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
722 } finally { |
63b4cea1ed3f
suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
723 Debug.setConfig(config); |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
724 } |
9531
63b4cea1ed3f
suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
725 return null; |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
726 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
727 }); |
9531
63b4cea1ed3f
suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
728 if (expectedError != null) { |
63b4cea1ed3f
suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
729 throw expectedError; |
63b4cea1ed3f
suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents:
9526
diff
changeset
|
730 } |
9395
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
731 } |
b11c3539a1e9
Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff
changeset
|
732 } |