annotate graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierVerificationTest.java @ 21404:cfc632ba7689

Merge
author Stefan Anzinger <stefan.anzinger@oracle.com>
date Fri, 15 May 2015 14:48:18 +0200
parents cc3131ff7ce2
children cba35d171cd1
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 /*
18187
9619ba4daf4c Rename Constant to JavaConstant.
Roland Schatz <roland.schatz@oracle.com>
parents: 17042
diff changeset
2 * Copyright (c) 2013, 2014, 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.*;
11779
d55fb90c1f12 Move barriers in hotspot specific package
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11760
diff changeset
35 import com.oracle.graal.hotspot.nodes.*;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
36 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
37 import com.oracle.graal.hotspot.replacements.arraycopy.*;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
38 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
39 import com.oracle.graal.nodes.StructuredGraph.AllowAssumptions;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
40 import com.oracle.graal.nodes.extended.*;
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
41 import com.oracle.graal.nodes.spi.*;
9511
715f82d1f695 Enable the loop safepoint elimination.
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 9442
diff changeset
42 import com.oracle.graal.phases.*;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
43 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
44 import com.oracle.graal.phases.common.inlining.*;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
45 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
46 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
47 import com.oracle.graal.phases.tiers.*;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
48
9398
9a30199f7ff6 Add comments to write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9397
diff changeset
49 /**
9a30199f7ff6 Add comments to write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9397
diff changeset
50 * 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
51 * 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
52 * 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
53 * 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
54 * 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
55 */
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
56 public class WriteBarrierVerificationTest extends GraalCompilerTest {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
57
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
58 public static int barrierIndex;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
59
18531
cdb9c605051a removed some static accesses to HotSpotGraalRuntime from some tests
Doug Simon <doug.simon@oracle.com>
parents: 18187
diff changeset
60 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
61
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
62 public static class Container {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
63
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
64 public Container a;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
65 public Container b;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
66 }
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 private static native void safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
69
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
70 public static void test1Snippet(Container main) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
71 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
72 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
73 barrierIndex = 0;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
74 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
75 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
76 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
77 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
78 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
79 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
80 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
81 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
82
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
83 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
84 public void test1() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
85 test("test1Snippet", 2, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
86 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
87
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
88 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
89 public void test2() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
90 test("test1Snippet", 2, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
91 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
92
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
93 public static void test2Snippet(Container main) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
94 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
95 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
96 barrierIndex = 0;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
97 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
98 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
99 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
100 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
101 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
102 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
103 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
104
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
105 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
106 public void test3() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
107 test("test2Snippet", 2, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
108 }
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 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
111 public void test4() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
112 test("test2Snippet", 2, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
113 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
114
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
115 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
116 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
117 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
118 barrierIndex = 0;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
119 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
120 for (int i = 0; i < 10; i++) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
121 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
122 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
123 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
124 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
125 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
126 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
127 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
128 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
129 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
130 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
131 }
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
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
135 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
136 public void test5() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
137 test("test3Snippet", 4, new int[]{1, 2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
138 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
141 public void test6() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
142 test("test3Snippet", 4, new int[]{3, 4});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
143 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
146 public void test7() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
147 test("test3Snippet", 4, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
148 }
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 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
151 public void test8() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
152 test("test3Snippet", 4, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
153 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
156 public void test9() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
157 test("test3Snippet", 4, new int[]{3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
158 }
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 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
161 public void test10() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
162 test("test3Snippet", 4, new int[]{4});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
163 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
164
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
165 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
166 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
167 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
168 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
169 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
170 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
171 for (int i = 0; i < 10; i++) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
172 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
173 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
174 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
175 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
176 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
177 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
178 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
179 main.a = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
180 barrierIndex = 5;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
181 main.b = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
182 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
183 }
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
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
186 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
187 public void test11() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
188 test("test4Snippet", 5, new int[]{2, 3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
189 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
192 public void test12() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
193 test("test4Snippet", 5, new int[]{4, 5});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
194 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
197 public void test13() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
198 test("test4Snippet", 5, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
199 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
200
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
201 public static void test5Snippet(Container main) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
202 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
203 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
204 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
205 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
206 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
207 if (main.a == main.b) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
208 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
209 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
210 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
211 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
212 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
213 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
214 main.a = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
215 barrierIndex = 5;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
216 main.b = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
217 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
218 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
219 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
220
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
221 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
222 public void test14() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
223 test("test5Snippet", 5, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
224 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
225
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
226 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
227 public void test15() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
228 test("test5Snippet", 5, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
229 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
230
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
231 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
232 public void test16() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
233 test("test5Snippet", 5, new int[]{4});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
234 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
235
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
236 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
237 public void test17() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
238 test("test5Snippet", 5, new int[]{3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
239 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
240
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
241 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
242 public void test18() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
243 test("test5Snippet", 5, new int[]{5});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
244 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
245
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
246 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
247 public void test19() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
248 test("test5Snippet", 5, new int[]{2, 3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
249 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
250
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
251 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
252 public void test20() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
253 test("test5Snippet", 5, new int[]{4, 5});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
254 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
255
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
256 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
257 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
258 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
259 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
260 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
261 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
262 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
263 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
264 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
265 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
266 main.b = temp1.a.a;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
267 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
268 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
269 main.a = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
270 barrierIndex = 5;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
271 main.b = temp2.a.a;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
272 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
273 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
274 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
275
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
276 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
277 public void test21() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
278 test("test6Snippet", 5, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
279 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
280
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
281 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
282 public void test22() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
283 test("test6Snippet", 5, new int[]{1, 2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
284 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
285
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
286 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
287 public void test23() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
288 test("test6Snippet", 5, new int[]{3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
289 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
290
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
291 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
292 public void test24() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
293 test("test6Snippet", 5, new int[]{4});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
294 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
295
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
296 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
297 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
298 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
299 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
300 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
301 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
302 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
303 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
304 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
305 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
306 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
307 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
308 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
309 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
310
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
311 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
312 public void test25() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
313 test("test7Snippet", 3, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
314 }
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 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
317 public void test26() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
318 test("test7Snippet", 3, new int[]{3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
319 }
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 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
322 public void test27() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
323 test("test7Snippet", 3, new int[]{2, 3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
324 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
327 public void test28() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
328 test("test7Snippet", 3, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
329 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
330
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
331 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
332 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
333 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
334 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
335 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
336 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
337 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
338 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
339 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
340 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
341 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
342 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
343
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
344 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
345 public void test29() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
346 test("test8Snippet", 2, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
347 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
350 public void test30() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
351 test("test8Snippet", 2, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
352 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
355 public void test31() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
356 test("test8Snippet", 2, new int[]{1, 2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
357 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
358
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
359 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
360 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
361 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
362 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
363 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
364 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
365 main1.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
366 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
367 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
368 main2.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
369 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
370 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
371 main1.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
372 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
373 main2.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
374 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
375 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
376
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
377 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
378 public void test32() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
379 test("test9Snippet", 4, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
380 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
383 public void test33() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
384 test("test9Snippet", 4, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
385 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
386
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
387 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
388 public void test34() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
389 test("test9Snippet", 4, new int[]{3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
390 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
391
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
392 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
393 public void test35() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
394 test("test9Snippet", 4, new int[]{4});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
395 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
396
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
397 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
398 public void test36() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
399 test("test9Snippet", 4, new int[]{1, 2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
400 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
401
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
402 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
403 public void test37() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
404 test("test9Snippet", 4, new int[]{3, 4});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
405 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
406
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
407 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
408 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
409 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
410 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
411 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
412 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
413 main1.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
414 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
415 main2.a = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
416 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
417 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
418 main2.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
419 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
420 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
421 main1.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
422 barrierIndex = 5;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
423 main2.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
424 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
425 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
426
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
427 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
428 public void test38() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
429 test("test10Snippet", 5, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
430 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
433 public void test39() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
434 test("test10Snippet", 5, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
435 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
438 public void test40() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
439 test("test10Snippet", 5, new int[]{3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
440 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
443 public void test41() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
444 test("test10Snippet", 5, new int[]{4});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
445 }
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 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
448 public void test42() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
449 test("test10Snippet", 5, new int[]{5});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
450 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
453 public void test43() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
454 test("test10Snippet", 5, new int[]{1, 2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
455 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
458 public void test44() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
459 test("test10Snippet", 5, new int[]{1, 2, 3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
460 }
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 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
463 public void test45() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
464 test("test10Snippet", 5, new int[]{3, 4});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
465 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
466
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
467 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
468 Container temp1 = new Container();
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
469 Container temp2 = new Container();
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
470 safepoint();
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
471 if (test) {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
472 barrierIndex = 1;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
473 main1.a = temp1;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
474 barrierIndex = 2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
475 main3.a = temp1;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
476 if (!test) {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
477 barrierIndex = 3;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
478 main2.a = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
479 } else {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
480 barrierIndex = 4;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
481 main1.a = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
482 barrierIndex = 5;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
483 main3.a = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
484 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
485 } else {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
486 barrierIndex = 6;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
487 main1.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
488 for (int i = 0; i < 10; i++) {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
489 barrierIndex = 7;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
490 main3.a = temp1;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
491 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
492 barrierIndex = 8;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
493 main3.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
494 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
495 barrierIndex = 9;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
496 main1.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
497 barrierIndex = 10;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
498 main2.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
499 barrierIndex = 11;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
500 main3.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
501 safepoint();
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
502 }
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 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
505 public void test46() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
506 test("test11Snippet", 11, new int[]{1});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
507 }
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 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
510 public void test47() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
511 test("test11Snippet", 11, new int[]{2});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
512 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
513
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
514 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
515 public void test48() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
516 test("test11Snippet", 11, new int[]{3});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
517 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
518
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
519 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
520 public void test49() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
521 test("test11Snippet", 11, new int[]{6});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
522 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
523
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
524 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
525 public void test50() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
526 test("test11Snippet", 11, new int[]{7});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
527 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
528
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
529 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
530 public void test51() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
531 test("test11Snippet", 11, new int[]{8});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
532 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
533
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
534 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
535 public void test52() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
536 test("test11Snippet", 11, new int[]{9});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
537 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
538
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
539 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
540 public void test53() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
541 test("test11Snippet", 11, new int[]{10});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
542 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
543
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
544 @Test
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
545 public void test54() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
546 test("test11Snippet", 11, new int[]{4});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
547 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
548
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
549 @Test
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
550 public void test55() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
551 test("test11Snippet", 11, new int[]{5});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
552 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
553
13636
b9a5fa298461 Adjust expected test result in WriteBarrierVerificationTest
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 13585
diff changeset
554 @Test
9397
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
555 public void test56() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
556 test("test11Snippet", 11, new int[]{11});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
557 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
558
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
559 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
560 Container temp1 = new Container();
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
561 Container temp2 = new Container();
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
562 barrierIndex = 0;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
563 safepoint();
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
564 barrierIndex = 7;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
565 main1.a = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
566 for (int i = 0; i < 10; i++) {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
567 if (test) {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
568 barrierIndex = 1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
569 main.a = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
570 barrierIndex = 2;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
571 main.b = temp2;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
572 } else {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
573 barrierIndex = 3;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
574 main.a = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
575 barrierIndex = 4;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
576 main.b = temp2;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
577 }
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 barrierIndex = 5;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
580 main.a = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
581 barrierIndex = 6;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
582 main.b = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
583 barrierIndex = 8;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
584 main1.b = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
585 safepoint();
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
586 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
587
9397
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
588 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
589 public void test57() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
590 test("test12Snippet", 8, new int[]{5});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
591 }
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 @Test
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
594 public void test58() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
595 test("test12Snippet", 8, new int[]{6});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
596 }
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 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
599 public void test59() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
600 test("test12Snippet", 8, new int[]{7});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
601 }
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 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
604 public void test60() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
605 test("test12Snippet", 8, new int[]{8});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
606 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
607
10775
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
608 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
609 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
610 }
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 @Test
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
613 public void test61() {
18595
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
614 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
615 testPredicate("test13Snippet", checkForUnsafeArrayCopy, new int[]{});
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
616 }
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 private interface GraphPredicate {
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
619 int apply(StructuredGraph graph);
10775
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
620 }
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
621
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
622 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
623 GraphPredicate noCheck = noArg -> expectedBarriers;
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
624 testPredicate(snippet, noCheck, removedBarrierIndices);
be63951fa2bc WriteBarrierVerification: relax check
Bernhard Urban <bernhard.urban@jku.at>
parents: 18531
diff changeset
625 }
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 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
628 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
629 final StructuredGraph graph = parseEager(snippet, AllowAssumptions.YES);
20068
cc3131ff7ce2 Remove GraphCache option.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19848
diff changeset
630 HighTierContext highTierContext = getDefaultHighTierContext();
19709
2fd45bb25118 Initial version of new dominator-based conditional elimination phase.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19306
diff changeset
631 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
632
19250
8ab925a6f724 made Assumptions be part of a StructuredGraph
Doug Simon <doug.simon@oracle.com>
parents: 18995
diff changeset
633 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
634
19709
2fd45bb25118 Initial version of new dominator-based conditional elimination phase.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19306
diff changeset
635 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
636 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
637 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
638 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
639
18531
cdb9c605051a removed some static accesses to HotSpotGraalRuntime from some tests
Doug Simon <doug.simon@oracle.com>
parents: 18187
diff changeset
640 new WriteBarrierAdditionPhase(config).apply(graph);
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
641
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
642 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
643 // 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
644 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
645 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
646 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
647 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
648 } 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
649 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
650 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
651 }
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 // 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
653 NodeIteratorClosure<Boolean> closure = new NodeIteratorClosure<Boolean>() {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
654
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
655 @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
656 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
657 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
658 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
659 LocationIdentity obj = write.getLocationIdentity();
19848
e532af44f9f9 Fix WriteBarrierAdditionTest.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19709
diff changeset
660 if (obj.toString().equals("barrierIndex")) {
e532af44f9f9 Fix WriteBarrierAdditionTest.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19709
diff changeset
661 /*
e532af44f9f9 Fix WriteBarrierAdditionTest.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19709
diff changeset
662 * A "barrierIndex" variable was found and is checked against the input
e532af44f9f9 Fix WriteBarrierAdditionTest.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19709
diff changeset
663 * barrier array.
e532af44f9f9 Fix WriteBarrierAdditionTest.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19709
diff changeset
664 */
e532af44f9f9 Fix WriteBarrierAdditionTest.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19709
diff changeset
665 if (eliminateBarrier(write.value().asJavaConstant().asInt(), removedBarrierIndices)) {
e532af44f9f9 Fix WriteBarrierAdditionTest.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 19709
diff changeset
666 return true;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
667 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
668 }
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
669 } 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
670 // 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
671 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
672 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
673 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
674 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
675 }
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
676 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
677 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
678
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
679 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
680 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
681 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
682 return true;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
683 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
684 }
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
685 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
686 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
687
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
688 @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
689 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
690 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
691 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
692
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
693 @Override
18995
a2cb19764970 Rename MergeNode to AbstractMergeNode.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18993
diff changeset
694 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
695 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
696 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
697
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
698 @Override
18993
480bd3b1adcd Rename BeginNode => AbstractBeginNode.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18596
diff changeset
699 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
700 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
701 }
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 };
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
703
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
704 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
705 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
706 try (DebugConfigScope s = Debug.setConfig(fixedConfig)) {
15467
4e3c2247daf4 simplify ReentrantNodeIterator
Lukas Stadler <lukas.stadler@oracle.com>
parents: 15145
diff changeset
707 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
708 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
709 } 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
710 /*
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 * 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
712 * 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
713 */
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 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
715 throw error;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
716 }
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
717 } 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
718 throw Debug.handle(e);
9531
63b4cea1ed3f suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents: 9526
diff changeset
719 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
720 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
721 }