annotate graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierVerificationTest.java @ 21526:1da7aef31a08

created com.oracle.graal.hotspot.jvmci package and moved classes destined for future JVMCI module into it (JBS:GRAAL-53)
author Doug Simon <doug.simon@oracle.com>
date Tue, 19 May 2015 23:16:07 +0200
parents cba35d171cd1
children 5324104ac4f3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
1 /*
21418
cba35d171cd1 Move memory related nodes to their own package.
Roland Schatz <roland.schatz@oracle.com>
parents: 20068
diff changeset
2 * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
9395
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.*;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
26
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
27 import org.junit.*;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
28
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
29 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
30 import com.oracle.graal.compiler.test.*;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
31 import com.oracle.graal.debug.*;
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
32 import com.oracle.graal.debug.Debug.Scope;
9531
63b4cea1ed3f suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents: 9526
diff changeset
33 import com.oracle.graal.debug.internal.*;
12429
5124eeec1a7b split HotSpotRuntime into separate provider implementations
Doug Simon <doug.simon@oracle.com>
parents: 12371
diff changeset
34 import com.oracle.graal.hotspot.*;
21526
1da7aef31a08 created com.oracle.graal.hotspot.jvmci package and moved classes destined for future JVMCI module into it (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21418
diff changeset
35 import com.oracle.graal.hotspot.jvmci.*;
11779
d55fb90c1f12 Move barriers in hotspot specific package
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11760
diff changeset
36 import com.oracle.graal.hotspot.nodes.*;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
37 import com.oracle.graal.hotspot.phases.*;
18596
5afa718edb8b arraycopy: move related classes to dedicated package
Bernhard Urban <bernhard.urban@jku.at>
parents: 18595
diff changeset
38 import com.oracle.graal.hotspot.replacements.arraycopy.*;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
39 import com.oracle.graal.nodes.*;
19306
a0a760b0fb5f pulled method evolution dependencies out of Assumptions and directly into StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents: 19250
diff changeset
40 import com.oracle.graal.nodes.StructuredGraph.AllowAssumptions;
21418
cba35d171cd1 Move memory related nodes to their own package.
Roland Schatz <roland.schatz@oracle.com>
parents: 20068
diff changeset
41 import com.oracle.graal.nodes.memory.*;
13505
75a67ebd50e8 Introduce a LoweringStage so that lowerings can be conditional on one of the three times that lowering is performed by default
Christian Wimmer <christian.wimmer@oracle.com>
parents: 13217
diff changeset
42 import com.oracle.graal.nodes.spi.*;
9511
715f82d1f695 Enable the loop safepoint elimination.
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 9442
diff changeset
43 import com.oracle.graal.phases.*;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
44 import com.oracle.graal.phases.common.*;
15470
c55f44b3c5e5 remove NodesToDoubles, refactoring of node probability and inlining relevance computation
Lukas Stadler <lukas.stadler@oracle.com>
parents: 15467
diff changeset
45 import com.oracle.graal.phases.common.inlining.*;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
46 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
47 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
48 import com.oracle.graal.phases.tiers.*;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
49
9398
9a30199f7ff6 Add comments to write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9397
diff changeset
50 /**
9a30199f7ff6 Add comments to write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9397
diff changeset
51 * 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
52 * 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
53 * 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
54 * 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
55 * 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
56 */
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
57 public class WriteBarrierVerificationTest extends GraalCompilerTest {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
58
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
59 public static int barrierIndex;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
60
18531
cdb9c605051a removed some static accesses to HotSpotGraalRuntime from some tests
Doug Simon <doug.simon@oracle.com>
parents: 18187
diff changeset
61 private final HotSpotVMConfig config = HotSpotGraalRuntime.runtime().getConfig();
cdb9c605051a removed some static accesses to HotSpotGraalRuntime from some tests
Doug Simon <doug.simon@oracle.com>
parents: 18187
diff changeset
62
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
63 public static class Container {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
64
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
65 public Container a;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
66 public Container b;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
67 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
68
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
69 private static native void safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
70
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
71 public static void test1Snippet(Container main) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
72 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
73 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
74 barrierIndex = 0;
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 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
77 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
78 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
79 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
80 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
81 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
82 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
83
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
84 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
85 public void test1() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
86 test("test1Snippet", 2, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
87 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
88
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
89 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
90 public void test2() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
91 test("test1Snippet", 2, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
92 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
93
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
94 public static void test2Snippet(Container main) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
95 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
96 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
97 barrierIndex = 0;
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 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
100 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
101 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
102 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
103 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
104 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
105
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
106 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
107 public void test3() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
108 test("test2Snippet", 2, new int[]{1});
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
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
111 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
112 public void test4() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
113 test("test2Snippet", 2, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
114 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
115
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
116 public static void test3Snippet(Container main, boolean test) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
117 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
118 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
119 barrierIndex = 0;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
120 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
121 for (int i = 0; i < 10; i++) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
122 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
123 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
124 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
125 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
126 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
127 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
128 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
129 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
130 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
131 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
132 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
133 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
134 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
135
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
136 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
137 public void test5() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
138 test("test3Snippet", 4, new int[]{1, 2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
139 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
142 public void test6() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
143 test("test3Snippet", 4, new int[]{3, 4});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
144 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
147 public void test7() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
148 test("test3Snippet", 4, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
149 }
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 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
152 public void test8() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
153 test("test3Snippet", 4, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
154 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
157 public void test9() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
158 test("test3Snippet", 4, new int[]{3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
159 }
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 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
162 public void test10() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
163 test("test3Snippet", 4, new int[]{4});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
164 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
165
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
166 public static void test4Snippet(Container main, boolean test) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
167 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
168 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
169 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
170 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
171 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
172 for (int i = 0; i < 10; i++) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
173 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
174 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
175 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
176 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
177 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
178 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
179 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
180 main.a = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
181 barrierIndex = 5;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
182 main.b = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
183 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
184 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
185 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
186
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
187 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
188 public void test11() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
189 test("test4Snippet", 5, new int[]{2, 3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
190 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
191
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
192 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
193 public void test12() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
194 test("test4Snippet", 5, new int[]{4, 5});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
195 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
196
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
197 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
198 public void test13() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
199 test("test4Snippet", 5, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
200 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
201
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
202 public static void test5Snippet(Container main) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
203 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
204 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
205 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
206 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
207 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
208 if (main.a == main.b) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
209 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
210 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
211 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
212 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
213 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
214 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
215 main.a = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
216 barrierIndex = 5;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
217 main.b = temp1;
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 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
220 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
221
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
222 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
223 public void test14() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
224 test("test5Snippet", 5, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
225 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
226
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
227 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
228 public void test15() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
229 test("test5Snippet", 5, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
230 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
231
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
232 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
233 public void test16() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
234 test("test5Snippet", 5, new int[]{4});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
235 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
236
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
237 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
238 public void test17() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
239 test("test5Snippet", 5, new int[]{3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
240 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
241
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
242 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
243 public void test18() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
244 test("test5Snippet", 5, new int[]{5});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
245 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
246
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
247 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
248 public void test19() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
249 test("test5Snippet", 5, new int[]{2, 3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
250 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
251
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
252 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
253 public void test20() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
254 test("test5Snippet", 5, new int[]{4, 5});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
255 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
256
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
257 public static void test6Snippet(Container main, boolean test) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
258 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
259 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
260 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
261 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
262 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
263 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
264 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
265 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
266 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
267 main.b = temp1.a.a;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
268 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
269 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
270 main.a = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
271 barrierIndex = 5;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
272 main.b = temp2.a.a;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
273 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
274 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
275 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
276
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
277 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
278 public void test21() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
279 test("test6Snippet", 5, new int[]{1});
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
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
282 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
283 public void test22() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
284 test("test6Snippet", 5, new int[]{1, 2});
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
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
287 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
288 public void test23() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
289 test("test6Snippet", 5, new int[]{3});
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
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
292 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
293 public void test24() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
294 test("test6Snippet", 5, new int[]{4});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
295 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
296
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
297 public static void test7Snippet(Container main, boolean test) {
9395
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
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
332 public static void test8Snippet(Container main, boolean test) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
333 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
334 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
335 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
336 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
337 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
338 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
339 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
340 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
341 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
342 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
343 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
344
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
345 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
346 public void test29() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
347 test("test8Snippet", 2, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
348 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
351 public void test30() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
352 test("test8Snippet", 2, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
353 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
356 public void test31() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
357 test("test8Snippet", 2, new int[]{1, 2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
358 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
359
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
360 public static void test9Snippet(Container main1, Container main2, boolean test) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
361 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
362 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
363 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
364 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
365 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
366 main1.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
367 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
368 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
369 main2.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
370 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
371 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
372 main1.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
373 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
374 main2.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
375 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
376 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
377
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
378 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
379 public void test32() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
380 test("test9Snippet", 4, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
381 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
382
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
383 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
384 public void test33() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
385 test("test9Snippet", 4, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
386 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
387
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
388 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
389 public void test34() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
390 test("test9Snippet", 4, new int[]{3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
391 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
392
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
393 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
394 public void test35() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
395 test("test9Snippet", 4, new int[]{4});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
396 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
397
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
398 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
399 public void test36() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
400 test("test9Snippet", 4, new int[]{1, 2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
401 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
402
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
403 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
404 public void test37() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
405 test("test9Snippet", 4, new int[]{3, 4});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
406 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
407
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
408 public static void test10Snippet(Container main1, Container main2, boolean test) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
409 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
410 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
411 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
412 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
413 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
414 main1.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
415 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
416 main2.a = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
417 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
418 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
419 main2.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
420 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
421 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
422 main1.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
423 barrierIndex = 5;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
424 main2.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
425 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
426 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
427
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
428 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
429 public void test38() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
430 test("test10Snippet", 5, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
431 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
432
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 test39() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
435 test("test10Snippet", 5, new int[]{2});
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 test40() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
440 test("test10Snippet", 5, new int[]{3});
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 test41() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
445 test("test10Snippet", 5, new int[]{4});
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
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
449 public void test42() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
450 test("test10Snippet", 5, new int[]{5});
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(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
454 public void test43() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
455 test("test10Snippet", 5, new int[]{1, 2});
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 test44() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
460 test("test10Snippet", 5, new int[]{1, 2, 3});
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 test45() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
465 test("test10Snippet", 5, new int[]{3, 4});
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
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
468 public static void test11Snippet(Container main1, Container main2, Container main3, boolean test) {
9397
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
469 Container temp1 = new Container();
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
470 Container temp2 = new Container();
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
471 safepoint();
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
472 if (test) {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
473 barrierIndex = 1;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
474 main1.a = temp1;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
475 barrierIndex = 2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
476 main3.a = temp1;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
477 if (!test) {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
478 barrierIndex = 3;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
479 main2.a = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
480 } else {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
481 barrierIndex = 4;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
482 main1.a = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
483 barrierIndex = 5;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
484 main3.a = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
485 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
486 } else {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
487 barrierIndex = 6;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
488 main1.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
489 for (int i = 0; i < 10; i++) {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
490 barrierIndex = 7;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
491 main3.a = temp1;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
492 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
493 barrierIndex = 8;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
494 main3.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
495 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
496 barrierIndex = 9;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
497 main1.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
498 barrierIndex = 10;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
499 main2.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
500 barrierIndex = 11;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
501 main3.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
502 safepoint();
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
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
505 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
506 public void test46() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
507 test("test11Snippet", 11, new int[]{1});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
508 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
509
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
510 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
511 public void test47() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
512 test("test11Snippet", 11, new int[]{2});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
513 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
514
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
515 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
516 public void test48() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
517 test("test11Snippet", 11, new int[]{3});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
518 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
519
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
520 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
521 public void test49() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
522 test("test11Snippet", 11, new int[]{6});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
523 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
524
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
525 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
526 public void test50() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
527 test("test11Snippet", 11, new int[]{7});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
528 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
529
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
530 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
531 public void test51() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
532 test("test11Snippet", 11, new int[]{8});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
533 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
534
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
535 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
536 public void test52() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
537 test("test11Snippet", 11, new int[]{9});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
538 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
539
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
540 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
541 public void test53() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
542 test("test11Snippet", 11, new int[]{10});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
543 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
544
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
545 @Test
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
546 public void test54() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
547 test("test11Snippet", 11, new int[]{4});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
548 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
549
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
550 @Test
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
551 public void test55() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
552 test("test11Snippet", 11, new int[]{5});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
553 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
554
13636
b9a5fa298461 Adjust expected test result in WriteBarrierVerificationTest
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 13585
diff changeset
555 @Test
9397
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
556 public void test56() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
557 test("test11Snippet", 11, new int[]{11});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
558 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
559
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
560 public static void test12Snippet(Container main, Container main1, boolean test) {
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
561 Container temp1 = new Container();
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
562 Container temp2 = new Container();
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
563 barrierIndex = 0;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
564 safepoint();
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
565 barrierIndex = 7;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
566 main1.a = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
567 for (int i = 0; i < 10; i++) {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
568 if (test) {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
569 barrierIndex = 1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
570 main.a = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
571 barrierIndex = 2;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
572 main.b = temp2;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
573 } else {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
574 barrierIndex = 3;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
575 main.a = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
576 barrierIndex = 4;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
577 main.b = temp2;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
578 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
579 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
580 barrierIndex = 5;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
581 main.a = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
582 barrierIndex = 6;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
583 main.b = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
584 barrierIndex = 8;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
585 main1.b = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
586 safepoint();
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
587 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
588
9397
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
589 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
590 public void test57() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
591 test("test12Snippet", 8, new int[]{5});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
592 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
593
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
594 @Test
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
595 public void test58() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
596 test("test12Snippet", 8, new int[]{6});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
597 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
598
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 test59() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
601 test("test12Snippet", 8, new int[]{7});
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(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
605 public void test60() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
606 test("test12Snippet", 8, new int[]{8});
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
10775
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
609 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
610 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
611 }
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
612
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
613 @Test
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
614 public void test61() {
18595
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
615 GraphPredicate checkForUnsafeArrayCopy = graph -> graph.getNodes().filter(UnsafeArrayCopyNode.class).count() > 0 ? 1 : 0;
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
616 testPredicate("test13Snippet", checkForUnsafeArrayCopy, new int[]{});
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
617 }
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
618
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
619 private interface GraphPredicate {
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
620 int apply(StructuredGraph graph);
10775
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
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
623 private void test(final String snippet, final int expectedBarriers, final int... removedBarrierIndices) {
18595
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
624 GraphPredicate noCheck = noArg -> expectedBarriers;
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
625 testPredicate(snippet, noCheck, removedBarrierIndices);
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
626 }
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
627
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
628 private void testPredicate(final String snippet, final GraphPredicate expectedBarriers, final int... removedBarrierIndices) {
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
629 try (Scope d = Debug.scope("WriteBarrierVerificationTest", new DebugDumpScope(snippet))) {
19306
a0a760b0fb5f pulled method evolution dependencies out of Assumptions and directly into StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents: 19250
diff changeset
630 final StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES);
20068
cc3131ff7ce2 Remove GraphCache option.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19848
diff changeset
631 HighTierContext highTierContext = getDefaultHighTierContext();
19709
2fd45bb25118 Initial version of new dominator-based conditional elimination phase.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19306
diff changeset
632 new InliningPhase(new CanonicalizerPhase()).apply(graph, highTierContext);
9531
63b4cea1ed3f suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents: 9526
diff changeset
633
19250
8ab925a6f724 made Assumptions be part of a StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents: 18995
diff changeset
634 MidTierContext midTierContext = new MidTierContext(getProviders(), getCodeCache().getTarget(), OptimisticOptimizations.ALL, graph.method().getProfilingInfo(), null);
10775
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
635
19709
2fd45bb25118 Initial version of new dominator-based conditional elimination phase.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19306
diff changeset
636 new LoweringPhase(new CanonicalizerPhase(), LoweringTool.StandardLoweringStage.HIGH_TIER).apply(graph, highTierContext);
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
637 new GuardLoweringPhase().apply(graph, midTierContext);
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
638 new LoopSafepointInsertionPhase().apply(graph);
19709
2fd45bb25118 Initial version of new dominator-based conditional elimination phase.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19306
diff changeset
639 new LoweringPhase(new CanonicalizerPhase(), LoweringTool.StandardLoweringStage.MID_TIER).apply(graph, highTierContext);
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
640
18531
cdb9c605051a removed some static accesses to HotSpotGraalRuntime from some tests
Doug Simon <doug.simon@oracle.com>
parents: 18187
diff changeset
641 new WriteBarrierAdditionPhase(config).apply(graph);
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
642
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
643 int barriers = 0;
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
644 // First, the total number of expected barriers is checked.
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
645 if (config.useG1GC) {
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
646 barriers = graph.getNodes().filter(G1PreWriteBarrier.class).count() + graph.getNodes().filter(G1PostWriteBarrier.class).count() +
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
647 graph.getNodes().filter(G1ArrayRangePreWriteBarrier.class).count() + graph.getNodes().filter(G1ArrayRangePostWriteBarrier.class).count();
18595
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
648 Assert.assertTrue(expectedBarriers.apply(graph) * 2 == barriers);
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
649 } else {
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
650 barriers = graph.getNodes().filter(SerialWriteBarrier.class).count() + graph.getNodes().filter(SerialArrayRangeWriteBarrier.class).count();
18595
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
651 Assert.assertTrue(expectedBarriers.apply(graph) == barriers);
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
652 }
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
653 // Iterate over all write nodes and remove barriers according to input indices.
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
654 NodeIteratorClosure<Boolean> closure = new NodeIteratorClosure<Boolean>() {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
655
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
656 @Override
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
657 protected Boolean processNode(FixedNode node, Boolean currentState) {
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
658 if (node instanceof WriteNode) {
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
659 WriteNode write = (WriteNode) node;
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
660 LocationIdentity obj = write.getLocationIdentity();
19848
e532af44f9f9 Fix WriteBarrierAdditionTest.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19709
diff changeset
661 if (obj.toString().equals("barrierIndex")) {
e532af44f9f9 Fix WriteBarrierAdditionTest.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19709
diff changeset
662 /*
e532af44f9f9 Fix WriteBarrierAdditionTest.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19709
diff changeset
663 * A "barrierIndex" variable was found and is checked against the input
e532af44f9f9 Fix WriteBarrierAdditionTest.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19709
diff changeset
664 * barrier array.
e532af44f9f9 Fix WriteBarrierAdditionTest.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19709
diff changeset
665 */
e532af44f9f9 Fix WriteBarrierAdditionTest.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19709
diff changeset
666 if (eliminateBarrier(write.value().asJavaConstant().asInt(), removedBarrierIndices)) {
e532af44f9f9 Fix WriteBarrierAdditionTest.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19709
diff changeset
667 return true;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
668 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
669 }
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
670 } else if (node instanceof SerialWriteBarrier || node instanceof G1PostWriteBarrier) {
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
671 // Remove flagged write barriers.
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
672 if (currentState) {
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
673 graph.removeFixed(((FixedWithNextNode) node));
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
674 return false;
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
675 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
676 }
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
677 return currentState;
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
678 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
679
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
680 private boolean eliminateBarrier(int index, int[] map) {
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
681 for (int i = 0; i < map.length; i++) {
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
682 if (map[i] == index) {
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
683 return true;
9395
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 }
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
686 return false;
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
687 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
688
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
689 @Override
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
690 protected Map<LoopExitNode, Boolean> processLoop(LoopBeginNode loop, Boolean initialState) {
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
691 return ReentrantNodeIterator.processLoop(this, loop, initialState).exitStates;
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
692 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
693
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
694 @Override
18995
a2cb19764970 Rename MergeNode to AbstractMergeNode.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18993
diff changeset
695 protected Boolean merge(AbstractMergeNode merge, List<Boolean> states) {
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
696 return false;
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
697 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
698
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
699 @Override
18993
480bd3b1adcd Rename BeginNode => AbstractBeginNode.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18596
diff changeset
700 protected Boolean afterSplit(AbstractBeginNode node, Boolean oldState) {
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
701 return false;
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
702 }
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
703 };
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
704
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
705 DebugConfig debugConfig = DebugScope.getConfig();
17042
9fe9d32e00b5 fixed unit tests so that they pass when assertions are disabled
Doug Simon <doug.simon@oracle.com>
parents: 16714
diff changeset
706 DebugConfig fixedConfig = debugConfig == null ? null : Debug.fixedConfig(0, 0, false, false, false, false, debugConfig.dumpHandlers(), debugConfig.verifyHandlers(), debugConfig.output());
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
707 try (DebugConfigScope s = Debug.setConfig(fixedConfig)) {
15467
4e3c2247daf4 simplify ReentrantNodeIterator
Lukas Stadler <lukas.stadler@oracle.com>
parents: 15145
diff changeset
708 ReentrantNodeIterator.apply(closure, graph.start(), false);
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
709 new WriteBarrierVerificationPhase().apply(graph);
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
710 } catch (AssertionError error) {
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
711 /*
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
712 * Catch assertion, test for expected one and re-throw in order to validate unit
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
713 * test.
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
714 */
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
715 Assert.assertTrue(error.getMessage().contains("Write barrier must be present"));
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
716 throw error;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
717 }
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
718 } catch (Throwable e) {
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
719 throw Debug.handle(e);
9531
63b4cea1ed3f suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents: 9526
diff changeset
720 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
721 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
722 }