annotate graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierVerificationTest.java @ 13217:210f58e992a1

Use separate method profile for OSR compilations.
author Roland Schatz <roland.schatz@oracle.com>
date Tue, 03 Dec 2013 11:28:56 +0100
parents 8569b9e047cd
children 75a67ebd50e8
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 /*
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
4 *
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
7 * published by the Free Software Foundation.
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
8 *
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
13 * accompanied this code).
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
14 *
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
18 *
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
21 * questions.
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
22 */
10440
7a0d4d95f84c moved write barrier tests to graal.hotspot.test and removed the graal.compiler.test -> graal.hotspot dependency
Doug Simon <doug.simon@oracle.com>
parents: 10090
diff changeset
23 package com.oracle.graal.hotspot.test;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
24
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
25 import java.util.*;
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.code.*;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
30 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
31 import com.oracle.graal.compiler.test.*;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
32 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
33 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
34 import com.oracle.graal.debug.internal.*;
12429
5124eeec1a7b split HotSpotRuntime into separate provider implementations
Doug Simon <doug.simon@oracle.com>
parents: 12371
diff changeset
35 import com.oracle.graal.hotspot.*;
11779
d55fb90c1f12 Move barriers in hotspot specific package
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11760
diff changeset
36 import com.oracle.graal.hotspot.nodes.*;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
37 import com.oracle.graal.hotspot.phases.*;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
38 import com.oracle.graal.nodes.*;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
39 import com.oracle.graal.nodes.extended.*;
9511
715f82d1f695 Enable the loop safepoint elimination.
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 9442
diff changeset
40 import com.oracle.graal.phases.*;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
41 import com.oracle.graal.phases.common.*;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
42 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
43 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
44 import com.oracle.graal.phases.tiers.*;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
45
9398
9a30199f7ff6 Add comments to write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9397
diff changeset
46 /**
9a30199f7ff6 Add comments to write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9397
diff changeset
47 * 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
48 * 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
49 * 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
50 * 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
51 * 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
52 */
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
53 public class WriteBarrierVerificationTest extends GraalCompilerTest {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
54
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
55 public static int barrierIndex;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
56
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
57 public static class Container {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
58
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
59 public Container a;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
60 public Container b;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
61 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
62
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
63 private static native void safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
64
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
65 public static void test1Snippet(Container main) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
66 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
67 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
68 barrierIndex = 0;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
69 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
70 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
71 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
72 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
73 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
74 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
75 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
76 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
77
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
78 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
79 public void test1() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
80 test("test1Snippet", 2, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
81 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
82
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
83 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
84 public void test2() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
85 test("test1Snippet", 2, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
86 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
87
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
88 public static void test2Snippet(Container main) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
89 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
90 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
91 barrierIndex = 0;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
92 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
93 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
94 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
95 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
96 main.b = temp2;
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 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
99
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
100 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
101 public void test3() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
102 test("test2Snippet", 2, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
103 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
104
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
105 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
106 public void test4() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
107 test("test2Snippet", 2, new int[]{2});
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
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
110 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
111 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
112 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
113 barrierIndex = 0;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
114 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
115 for (int i = 0; i < 10; i++) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
116 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
117 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
118 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
119 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
120 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
121 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
122 barrierIndex = 3;
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 = 4;
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 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
127 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
128 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
129
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
130 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
131 public void test5() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
132 test("test3Snippet", 4, new int[]{1, 2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
133 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
134
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 test6() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
137 test("test3Snippet", 4, new int[]{3, 4});
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 test7() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
142 test("test3Snippet", 4, new int[]{1});
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
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
146 public void test8() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
147 test("test3Snippet", 4, new int[]{2});
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(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
151 public void test9() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
152 test("test3Snippet", 4, new int[]{3});
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
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
156 public void test10() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
157 test("test3Snippet", 4, new int[]{4});
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
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
160 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
161 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
162 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
163 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
164 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
165 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
166 for (int i = 0; i < 10; i++) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
167 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
168 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
169 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
170 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
171 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
172 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
173 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
174 main.a = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
175 barrierIndex = 5;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
176 main.b = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
177 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
178 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
179 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
180
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
181 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
182 public void test11() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
183 test("test4Snippet", 5, new int[]{2, 3});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
184 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
185
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 test12() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
188 test("test4Snippet", 5, new int[]{4, 5});
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 test13() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
193 test("test4Snippet", 5, new int[]{1});
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
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
196 public static void test5Snippet(Container main) {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
197 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
198 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
199 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
200 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
201 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
202 if (main.a == main.b) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
203 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
204 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
205 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
206 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
207 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
208 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
209 main.a = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
210 barrierIndex = 5;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
211 main.b = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
212 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
213 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
214 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
215
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
216 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
217 public void test14() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
218 test("test5Snippet", 5, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
219 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
220
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
221 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
222 public void test15() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
223 test("test5Snippet", 5, new int[]{2});
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 test16() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
228 test("test5Snippet", 5, new int[]{4});
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 test17() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
233 test("test5Snippet", 5, new int[]{3});
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 test18() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
238 test("test5Snippet", 5, new int[]{5});
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 test19() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
243 test("test5Snippet", 5, new int[]{2, 3});
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 test20() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
248 test("test5Snippet", 5, new int[]{4, 5});
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
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
251 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
252 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
253 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
254 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
255 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
256 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
257 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
258 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
259 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
260 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
261 main.b = temp1.a.a;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
262 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
263 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
264 main.a = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
265 barrierIndex = 5;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
266 main.b = temp2.a.a;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
267 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
268 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
269 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
270
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
271 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
272 public void test21() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
273 test("test6Snippet", 5, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
274 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
275
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 test22() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
278 test("test6Snippet", 5, new int[]{1, 2});
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 test23() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
283 test("test6Snippet", 5, new int[]{3});
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
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
287 public void test24() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
288 test("test6Snippet", 5, new int[]{4});
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
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
291 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
292 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
293 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
294 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
295 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
296 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
297 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
298 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
299 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
300 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
301 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
302 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
303 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
304 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
305
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
306 @Test
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
307 public void test25() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
308 test("test7Snippet", 3, new int[]{2});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
309 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
310
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 test26() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
313 test("test7Snippet", 3, new int[]{3});
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 test27() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
318 test("test7Snippet", 3, new int[]{2, 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(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
322 public void test28() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
323 test("test7Snippet", 3, new int[]{1});
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
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
326 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
327 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
328 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
329 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
330 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
331 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
332 main.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
333 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
334 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
335 main.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
336 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
337 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
338
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
339 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
340 public void test29() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
341 test("test8Snippet", 2, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
342 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
343
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 test30() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
346 test("test8Snippet", 2, new int[]{2});
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 test31() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
351 test("test8Snippet", 2, new int[]{1, 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
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
354 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
355 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
356 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
357 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
358 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
359 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
360 main1.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
361 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
362 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
363 main2.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
364 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
365 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
366 main1.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
367 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
368 main2.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
369 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
370 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
371
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
372 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
373 public void test32() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
374 test("test9Snippet", 4, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
375 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
376
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 test33() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
379 test("test9Snippet", 4, new int[]{2});
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 test34() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
384 test("test9Snippet", 4, new int[]{3});
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 test35() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
389 test("test9Snippet", 4, new int[]{4});
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 test36() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
394 test("test9Snippet", 4, new int[]{1, 2});
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 test37() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
399 test("test9Snippet", 4, new int[]{3, 4});
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
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
402 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
403 Container temp1 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
404 Container temp2 = new Container();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
405 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
406 if (test) {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
407 barrierIndex = 1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
408 main1.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
409 barrierIndex = 2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
410 main2.a = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
411 } else {
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
412 barrierIndex = 3;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
413 main2.a = temp1;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
414 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
415 barrierIndex = 4;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
416 main1.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
417 barrierIndex = 5;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
418 main2.b = temp2;
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
419 safepoint();
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
420 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
421
9405
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
422 @Test(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
423 public void test38() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
424 test("test10Snippet", 5, new int[]{1});
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
425 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
426
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 test39() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
429 test("test10Snippet", 5, new int[]{2});
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 test40() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
434 test("test10Snippet", 5, new int[]{3});
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 test41() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
439 test("test10Snippet", 5, new int[]{4});
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
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
443 public void test42() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
444 test("test10Snippet", 5, new int[]{5});
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(expected = AssertionError.class)
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
448 public void test43() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
449 test("test10Snippet", 5, new int[]{1, 2});
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 test44() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
454 test("test10Snippet", 5, new int[]{1, 2, 3});
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 test45() {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
459 test("test10Snippet", 5, new int[]{3, 4});
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
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
462 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
463 Container temp1 = new Container();
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
464 Container temp2 = new Container();
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
465 safepoint();
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
466 if (test) {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
467 barrierIndex = 1;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
468 main1.a = temp1;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
469 barrierIndex = 2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
470 main3.a = temp1;
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 = 3;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
473 main2.a = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
474 } else {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
475 barrierIndex = 4;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
476 main1.a = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
477 barrierIndex = 5;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
478 main3.a = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
479 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
480 } else {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
481 barrierIndex = 6;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
482 main1.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
483 for (int i = 0; i < 10; i++) {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
484 barrierIndex = 7;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
485 main3.a = temp1;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
486 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
487 barrierIndex = 8;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
488 main3.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
489 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
490 barrierIndex = 9;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
491 main1.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
492 barrierIndex = 10;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
493 main2.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
494 barrierIndex = 11;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
495 main3.b = temp2;
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
496 safepoint();
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
497 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
498
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
499 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
500 public void test46() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
501 test("test11Snippet", 11, new int[]{1});
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 test47() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
506 test("test11Snippet", 11, new int[]{2});
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 test48() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
511 test("test11Snippet", 11, new int[]{3});
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 test49() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
516 test("test11Snippet", 11, new int[]{6});
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 test50() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
521 test("test11Snippet", 11, new int[]{7});
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 test51() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
526 test("test11Snippet", 11, new int[]{8});
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 test52() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
531 test("test11Snippet", 11, new int[]{9});
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 test53() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
536 test("test11Snippet", 11, new int[]{10});
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
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
540 public void test54() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
541 test("test11Snippet", 11, new int[]{4});
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 test55() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
546 test("test11Snippet", 11, new int[]{5});
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
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
549 @Test(expected = AssertionError.class)
9397
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
550 public void test56() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
551 test("test11Snippet", 11, new int[]{11});
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
12370
1e4d1c150ed5 Augment unit tests to account for deferred init barriers
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 11779
diff changeset
554 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
555 Container temp1 = new Container();
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
556 Container temp2 = new Container();
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
557 barrierIndex = 0;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
558 safepoint();
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
559 barrierIndex = 7;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
560 main1.a = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
561 for (int i = 0; i < 10; i++) {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
562 if (test) {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
563 barrierIndex = 1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
564 main.a = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
565 barrierIndex = 2;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
566 main.b = temp2;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
567 } else {
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
568 barrierIndex = 3;
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 = 4;
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 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
573 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
574 barrierIndex = 5;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
575 main.a = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
576 barrierIndex = 6;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
577 main.b = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
578 barrierIndex = 8;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
579 main1.b = temp1;
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
580 safepoint();
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
581 }
5618a717b8ad Add comments into WriteBarrierVerificationTest
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9400
diff changeset
582
9397
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
583 @Test(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
584 public void test57() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
585 test("test12Snippet", 8, new int[]{5});
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
586 }
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
587
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
588 @Test
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
589 public void test58() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
590 test("test12Snippet", 8, new int[]{6});
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(expected = AssertionError.class)
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
594 public void test59() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
595 test("test12Snippet", 8, new int[]{7});
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 test60() {
05b8bfa40086 Add more write barrier verification tests
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 9395
diff changeset
600 test("test12Snippet", 8, new int[]{8});
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
10775
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
603 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
604 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
605 }
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
606
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
607 @Test
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
608 public void test61() {
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
609 test("test13Snippet", 1, new int[]{});
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
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
612 private void test(final String snippet, final int 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
613 try (Scope d = Debug.scope("WriteBarrierVerificationTest", new DebugDumpScope(snippet))) {
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
614 final StructuredGraph graph = parse(snippet);
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
615 HighTierContext highTierContext = new HighTierContext(getProviders(), new Assumptions(false), null, getDefaultPhasePlan(), OptimisticOptimizations.ALL);
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
616 new InliningPhase(new CanonicalizerPhase(true)).apply(graph, highTierContext);
9531
63b4cea1ed3f suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents: 9526
diff changeset
617
13217
210f58e992a1 Use separate method profile for OSR compilations.
Roland Schatz <roland.schatz@oracle.com>
parents: 13197
diff changeset
618 MidTierContext midTierContext = new MidTierContext(getProviders(), new Assumptions(false), getCodeCache().getTarget(), OptimisticOptimizations.ALL, graph.method().getProfilingInfo());
10775
0a8f1eefce51 Augment WriteBarrierVerificationTest with arrayCopy test case
Christos Kotselidis <christos.kotselidis@oracle.com>
parents: 10616
diff changeset
619
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
620 new LoweringPhase(new CanonicalizerPhase(true)).apply(graph, highTierContext);
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
621 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
622 new LoopSafepointInsertionPhase().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
623 new LoweringPhase(new CanonicalizerPhase(true)).apply(graph, highTierContext);
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
624
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
625 new WriteBarrierAdditionPhase().apply(graph);
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
626
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
627 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
628 // 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
629 HotSpotVMConfig config = HotSpotGraalRuntime.runtime().getConfig();
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
630 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
631 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
632 graph.getNodes().filter(G1ArrayRangePreWriteBarrier.class).count() + graph.getNodes().filter(G1ArrayRangePostWriteBarrier.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
633 Assert.assertTrue(expectedBarriers * 2 == 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
634 } 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
635 barriers = graph.getNodes().filter(SerialWriteBarrier.class).count() + graph.getNodes().filter(SerialArrayRangeWriteBarrier.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
636 Assert.assertTrue(expectedBarriers == 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
637 }
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
638 // 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
639 NodeIteratorClosure<Boolean> closure = new NodeIteratorClosure<Boolean>() {
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
640
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
641 @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
642 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
643 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
644 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
645 LocationIdentity obj = write.getLocationIdentity();
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 if (obj instanceof ResolvedJavaField) {
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
647 if (((ResolvedJavaField) obj).getName().equals("barrierIndex")) {
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 /*
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 * A "barrierIndex" variable was found and is checked against the
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
650 * input barrier array.
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 if (eliminateBarrier(write.value().asConstant().asInt(), removedBarrierIndices)) {
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 return true;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
654 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
655 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
656 }
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
657 } 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
658 // 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
659 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
660 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
661 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
662 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
663 }
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
664 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
665 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
666
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
667 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
668 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
669 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
670 return true;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
671 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
672 }
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
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 @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
677 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
678 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
679 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
680
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
681 @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
682 protected Boolean merge(MergeNode merge, List<Boolean> states) {
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
683 return 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
684 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
685
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
686 @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
687 protected Boolean afterSplit(AbstractBeginNode node, Boolean oldState) {
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 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
689 }
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 };
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
691
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
692 DebugConfig debugConfig = DebugScope.getConfig();
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 DebugConfig fixedConfig = Debug.fixedConfig(false, false, false, false, debugConfig.dumpHandlers(), debugConfig.output());
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
694 try (DebugConfigScope s = Debug.setConfig(fixedConfig)) {
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 ReentrantNodeIterator.apply(closure, graph.start(), false, null);
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 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
697 } 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
698 /*
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
699 * 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
700 * 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
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 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
703 throw error;
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
704 }
13197
8569b9e047cd change debug scopes implementation to prevent extra frames related to mechanism being added to call stack
Doug Simon <doug.simon@oracle.com>
parents: 13160
diff changeset
705 } 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
706 throw Debug.handle(e);
9531
63b4cea1ed3f suppressed output for expected AssertionError in WriteBarrierVerificationTest
Doug Simon <doug.simon@oracle.com>
parents: 9526
diff changeset
707 }
9395
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
708 }
b11c3539a1e9 Add write barrier verification phase test
Christos Kotselidis <christos.kotselidis@oracle.com>
parents:
diff changeset
709 }