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