author | chegar |
Thu, 17 Oct 2019 20:54:25 +0100 | |
branch | datagramsocketimpl-branch |
changeset 58679 | 9c3209ff7550 |
parent 58678 | 9cf78a70fa4f |
parent 55463 | 31bf7b93df5d |
permissions | -rw-r--r-- |
33160 | 1 |
/* |
55206 | 2 |
* Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. |
33160 | 3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 |
* |
|
5 |
* This code is free software; you can redistribute it and/or modify it |
|
6 |
* under the terms of the GNU General Public License version 2 only, as |
|
7 |
* published by the Free Software Foundation. |
|
8 |
* |
|
9 |
* This code is distributed in the hope that it will be useful, but WITHOUT |
|
10 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
11 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
12 |
* version 2 for more details (a copy is included in the LICENSE file that |
|
13 |
* accompanied this code). |
|
14 |
* |
|
15 |
* You should have received a copy of the GNU General Public License version |
|
16 |
* 2 along with this work; if not, write to the Free Software Foundation, |
|
17 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
18 |
* |
|
19 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
20 |
* or visit www.oracle.com if you need additional information or have any |
|
21 |
* questions. |
|
22 |
*/ |
|
23 |
||
24 |
/** |
|
25 |
* @test |
|
42607
acd91f1875d4
8170227: use vm.jvmci property in compiler/jvmci tests
iignatyev
parents:
40631
diff
changeset
|
26 |
* @requires vm.jvmci |
36508 | 27 |
* @library ../../../../../ |
43972 | 28 |
* @modules jdk.internal.vm.ci/jdk.vm.ci.meta |
29 |
* jdk.internal.vm.ci/jdk.vm.ci.runtime |
|
38152
80e5da81fb2c
8154258: [TESTBUG] Various serviceability tests fail compilation
dsamersoff
parents:
36508
diff
changeset
|
30 |
* java.base/jdk.internal.misc |
55206 | 31 |
* @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.runtime.test.TestMetaAccessProvider |
33160 | 32 |
*/ |
33 |
||
34 |
package jdk.vm.ci.runtime.test; |
|
35 |
||
38691
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
36 |
import jdk.vm.ci.meta.DeoptimizationAction; |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
37 |
import jdk.vm.ci.meta.DeoptimizationReason; |
33632 | 38 |
import jdk.vm.ci.meta.JavaConstant; |
39 |
import jdk.vm.ci.meta.JavaKind; |
|
40 |
import jdk.vm.ci.meta.MetaAccessProvider; |
|
41 |
import jdk.vm.ci.meta.ResolvedJavaField; |
|
42 |
import jdk.vm.ci.meta.ResolvedJavaMethod; |
|
43 |
import jdk.vm.ci.meta.ResolvedJavaType; |
|
38691
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
44 |
import jdk.vm.ci.meta.Signature; |
40059 | 45 |
import org.junit.Test; |
33160 | 46 |
|
40059 | 47 |
import java.lang.reflect.Field; |
48 |
import java.lang.reflect.Method; |
|
49 |
||
50 |
import static jdk.vm.ci.meta.MetaUtil.toInternalName; |
|
51 |
import static org.junit.Assert.assertEquals; |
|
52 |
import static org.junit.Assert.assertNotNull; |
|
53 |
import static org.junit.Assert.assertNull; |
|
54 |
import static org.junit.Assert.assertTrue; |
|
33160 | 55 |
|
56 |
/** |
|
57 |
* Tests for {@link MetaAccessProvider}. |
|
58 |
*/ |
|
59 |
public class TestMetaAccessProvider extends TypeUniverse { |
|
38691
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
60 |
private static final DeoptimizationAction DEOPT_ACTION = DeoptimizationAction.InvalidateRecompile; |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
61 |
private static final DeoptimizationReason DEOPT_REASON = DeoptimizationReason.Aliasing; |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
62 |
private static final int INT_23BITS_SET = 0x7FFFFF; |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
63 |
private static final int[] DEBUG_IDS = new int[]{0, 1, 42, INT_23BITS_SET}; |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
64 |
private static final int[] VALID_ENCODED_VALUES = new int[]{ |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
65 |
metaAccess.encodeDeoptActionAndReason(DEOPT_ACTION, DEOPT_REASON, DEBUG_IDS[0]).asInt(), |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
66 |
metaAccess.encodeDeoptActionAndReason(DEOPT_ACTION, DEOPT_REASON, DEBUG_IDS[1]).asInt(), |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
67 |
metaAccess.encodeDeoptActionAndReason(DEOPT_ACTION, DEOPT_REASON, DEBUG_IDS[2]).asInt(), |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
68 |
metaAccess.encodeDeoptActionAndReason(DEOPT_ACTION, DEOPT_REASON, DEBUG_IDS[3]).asInt() |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
69 |
}; |
33160 | 70 |
|
55463 | 71 |
private static boolean isUnsafeAnoymous(ResolvedJavaType type) { |
72 |
return type.getHostClass() != null; |
|
73 |
} |
|
74 |
||
33160 | 75 |
@Test |
76 |
public void lookupJavaTypeTest() { |
|
77 |
for (Class<?> c : classes) { |
|
78 |
ResolvedJavaType type = metaAccess.lookupJavaType(c); |
|
79 |
assertNotNull(c.toString(), type); |
|
55463 | 80 |
if (!isUnsafeAnoymous(type)) { |
81 |
assertEquals(c.toString(), type.getName(), toInternalName(c.getName())); |
|
82 |
assertEquals(c.toString(), type.getName(), toInternalName(type.toJavaName())); |
|
83 |
assertEquals(c.toString(), c.getName(), type.toClassName()); |
|
84 |
if (!type.isArray()) { |
|
85 |
assertEquals(c.toString(), c.getName(), type.toJavaName()); |
|
86 |
} |
|
33160 | 87 |
} |
88 |
} |
|
89 |
} |
|
90 |
||
38691
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
91 |
@Test(expected = IllegalArgumentException.class) |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
92 |
public void lookupJavaTypeNegativeTest() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
93 |
metaAccess.lookupJavaType((Class<?>) null); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
94 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
95 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
96 |
@Test |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
97 |
public void lookupJavaTypesTest() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
98 |
ResolvedJavaType[] result = metaAccess.lookupJavaTypes(classes.toArray(new Class<?>[classes.size()])); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
99 |
int counter = 0; |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
100 |
for (Class<?> aClass : classes) { |
55463 | 101 |
if (!isUnsafeAnoymous(result[counter])) { |
102 |
assertEquals("Unexpected javaType: " + result[counter] + " while expecting of class: " + aClass, result[counter].toClassName(), aClass.getName()); |
|
103 |
} |
|
38691
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
104 |
counter++; |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
105 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
106 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
107 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
108 |
@Test(expected = NullPointerException.class) |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
109 |
public void lookupJavaTypesNegative1Test() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
110 |
assertNull("Expected null", metaAccess.lookupJavaTypes(null)); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
111 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
112 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
113 |
@Test(expected = IllegalArgumentException.class) |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
114 |
public void lookupJavaTypesNegative2Test() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
115 |
ResolvedJavaType[] result = metaAccess.lookupJavaTypes(new Class<?>[]{null, null, null}); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
116 |
for (ResolvedJavaType aType : result) { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
117 |
assertNull("Expected null javaType", aType); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
118 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
119 |
result = metaAccess.lookupJavaTypes(new Class<?>[]{String.class, String.class}); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
120 |
assertEquals("Results not equals", result[0].getClass(), result[1].getClass()); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
121 |
assertEquals("Result is not String.class", result[0].getClass(), String.class); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
122 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
123 |
|
33160 | 124 |
@Test |
125 |
public void lookupJavaMethodTest() { |
|
126 |
for (Class<?> c : classes) { |
|
127 |
for (Method reflect : c.getDeclaredMethods()) { |
|
128 |
ResolvedJavaMethod method = metaAccess.lookupJavaMethod(reflect); |
|
129 |
assertNotNull(method); |
|
130 |
assertTrue(method.getDeclaringClass().equals(metaAccess.lookupJavaType(reflect.getDeclaringClass()))); |
|
131 |
} |
|
132 |
} |
|
133 |
} |
|
134 |
||
38691
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
135 |
@Test(expected = NullPointerException.class) |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
136 |
public void lookupJavaMethodNegativeTest() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
137 |
metaAccess.lookupJavaMethod(null); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
138 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
139 |
|
33160 | 140 |
@Test |
141 |
public void lookupJavaFieldTest() { |
|
142 |
for (Class<?> c : classes) { |
|
143 |
for (Field reflect : c.getDeclaredFields()) { |
|
144 |
ResolvedJavaField field = metaAccess.lookupJavaField(reflect); |
|
145 |
assertNotNull(field); |
|
146 |
assertTrue(field.getDeclaringClass().equals(metaAccess.lookupJavaType(reflect.getDeclaringClass()))); |
|
147 |
} |
|
148 |
} |
|
149 |
} |
|
150 |
||
151 |
@Test |
|
152 |
public void lookupJavaTypeConstantTest() { |
|
153 |
for (ConstantValue cv : constants()) { |
|
154 |
JavaConstant c = cv.value; |
|
155 |
if (c.getJavaKind() == JavaKind.Object && !c.isNull()) { |
|
156 |
Object o = cv.boxed; |
|
157 |
ResolvedJavaType type = metaAccess.lookupJavaType(c); |
|
158 |
assertNotNull(type); |
|
159 |
assertTrue(type.equals(metaAccess.lookupJavaType(o.getClass()))); |
|
160 |
} else { |
|
161 |
assertEquals(metaAccess.lookupJavaType(c), null); |
|
162 |
} |
|
163 |
} |
|
164 |
} |
|
38691
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
165 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
166 |
@Test(expected = NullPointerException.class) |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
167 |
public void lookupJavaTypeConstantNegativeTest() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
168 |
metaAccess.lookupJavaType((JavaConstant) null); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
169 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
170 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
171 |
@Test |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
172 |
public void getMemorySizeTest() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
173 |
for (ConstantValue cv : constants()) { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
174 |
JavaConstant c = cv.value; |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
175 |
long memSize = metaAccess.getMemorySize(c); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
176 |
if (c.isNull()) { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
177 |
assertEquals("Expected size = 0 for null", memSize, 0L); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
178 |
} else { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
179 |
assertTrue("Expected size != 0 for " + cv, memSize != 0L); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
180 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
181 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
182 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
183 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
184 |
@Test(expected = NullPointerException.class) |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
185 |
public void getMemorySizeNegativeTest() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
186 |
metaAccess.getMemorySize(null); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
187 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
188 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
189 |
@Test |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
190 |
public void parseMethodDescriptorTest() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
191 |
for (String retType : new String[]{"V", "Z", "Ljava/lang/String;"}) { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
192 |
for (String paramTypes : new String[]{"", "B", |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
193 |
"Ljava/lang/String;", "JLjava/lang/String;", |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
194 |
"Ljava/lang/String;F", |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
195 |
"[Ljava/lang/String;ZBCDFIJLS[ILjava/lang/Object;"}) { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
196 |
String signature = "(" + paramTypes + ")" + retType; |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
197 |
Signature result = metaAccess.parseMethodDescriptor(signature); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
198 |
assertEquals("Expected signatures to be equal", result.toMethodDescriptor(), signature); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
199 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
200 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
201 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
202 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
203 |
@Test(expected = NullPointerException.class) |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
204 |
public void parseMethodDescriptorNegativeNullTest() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
205 |
metaAccess.parseMethodDescriptor(null); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
206 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
207 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
208 |
@Test(expected = NullPointerException.class) |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
209 |
public void encodeDeoptActionAndReasonNegative1Test() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
210 |
metaAccess.encodeDeoptActionAndReason(null, DeoptimizationReason.Aliasing, 0); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
211 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
212 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
213 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
214 |
@Test(expected = NullPointerException.class) |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
215 |
public void encodeDeoptActionAndReasonNegative2Test() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
216 |
metaAccess.encodeDeoptActionAndReason(DeoptimizationAction.InvalidateRecompile, null, 0); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
217 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
218 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
219 |
@Test |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
220 |
public void decodeDeoptReasonTest() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
221 |
for (int encoded : VALID_ENCODED_VALUES) { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
222 |
JavaConstant value = JavaConstant.forInt(encoded); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
223 |
DeoptimizationReason reason = metaAccess.decodeDeoptReason(value); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
224 |
assertEquals("Expected equal reasons", reason, DEOPT_REASON); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
225 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
226 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
227 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
228 |
@Test |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
229 |
public void decodeDeoptReasonNegative1Test() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
230 |
int encoded = 42; |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
231 |
JavaConstant value = JavaConstant.forInt(encoded); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
232 |
metaAccess.decodeDeoptReason(value); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
233 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
234 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
235 |
@Test(expected = NullPointerException.class) |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
236 |
public void decodeDeoptReasonNegative2Test() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
237 |
metaAccess.decodeDeoptReason(null); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
238 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
239 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
240 |
@Test |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
241 |
public void decodeDeoptActionTest() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
242 |
for (int encoded : VALID_ENCODED_VALUES) { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
243 |
JavaConstant value = JavaConstant.forInt(encoded); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
244 |
DeoptimizationAction action = metaAccess.decodeDeoptAction(value); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
245 |
assertEquals("Expected equal actions", action, DEOPT_ACTION); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
246 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
247 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
248 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
249 |
@Test |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
250 |
public void decodeDeoptActionNegative1Test() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
251 |
int encoded = 123456789; |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
252 |
JavaConstant value = JavaConstant.forInt(encoded); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
253 |
metaAccess.decodeDeoptAction(value); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
254 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
255 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
256 |
@Test(expected = NullPointerException.class) |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
257 |
public void decodeDeoptActionNegative2Test() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
258 |
metaAccess.decodeDeoptAction(null); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
259 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
260 |
|
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
261 |
@Test |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
262 |
public void decodeDebugIdTest() { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
263 |
for (int i = 0; i < VALID_ENCODED_VALUES.length; i++) { |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
264 |
JavaConstant value = JavaConstant.forInt(VALID_ENCODED_VALUES[i]); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
265 |
assertEquals("Unexpected debugId", metaAccess.decodeDebugId(value), DEBUG_IDS[i]); |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
266 |
} |
a2c52cff500d
8152343: JVMCI test tasks: Unit tests for MetaAccessProvider
dpochepk
parents:
38152
diff
changeset
|
267 |
} |
46970
449f80716e59
8186163: [JVMCI] bad signatures should be detected by MetaAccessProvider.parseMethodDescriptor
dnsimon
parents:
44836
diff
changeset
|
268 |
|
449f80716e59
8186163: [JVMCI] bad signatures should be detected by MetaAccessProvider.parseMethodDescriptor
dnsimon
parents:
44836
diff
changeset
|
269 |
@Test |
449f80716e59
8186163: [JVMCI] bad signatures should be detected by MetaAccessProvider.parseMethodDescriptor
dnsimon
parents:
44836
diff
changeset
|
270 |
public void parseSignatureTest() { |
449f80716e59
8186163: [JVMCI] bad signatures should be detected by MetaAccessProvider.parseMethodDescriptor
dnsimon
parents:
44836
diff
changeset
|
271 |
for (String badSig : new String[]{"", "()", "(", "()Vextra", "()E", "(E)", "(Ljava.lang.Object;)V"}) { |
449f80716e59
8186163: [JVMCI] bad signatures should be detected by MetaAccessProvider.parseMethodDescriptor
dnsimon
parents:
44836
diff
changeset
|
272 |
try { |
449f80716e59
8186163: [JVMCI] bad signatures should be detected by MetaAccessProvider.parseMethodDescriptor
dnsimon
parents:
44836
diff
changeset
|
273 |
metaAccess.parseMethodDescriptor(badSig); |
449f80716e59
8186163: [JVMCI] bad signatures should be detected by MetaAccessProvider.parseMethodDescriptor
dnsimon
parents:
44836
diff
changeset
|
274 |
throw new AssertionError("Expected signature to be invalid: " + badSig); |
449f80716e59
8186163: [JVMCI] bad signatures should be detected by MetaAccessProvider.parseMethodDescriptor
dnsimon
parents:
44836
diff
changeset
|
275 |
} catch (IllegalArgumentException e) { |
449f80716e59
8186163: [JVMCI] bad signatures should be detected by MetaAccessProvider.parseMethodDescriptor
dnsimon
parents:
44836
diff
changeset
|
276 |
} |
449f80716e59
8186163: [JVMCI] bad signatures should be detected by MetaAccessProvider.parseMethodDescriptor
dnsimon
parents:
44836
diff
changeset
|
277 |
} |
449f80716e59
8186163: [JVMCI] bad signatures should be detected by MetaAccessProvider.parseMethodDescriptor
dnsimon
parents:
44836
diff
changeset
|
278 |
} |
33160 | 279 |
} |