src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/ConstantPoolSubstitutionsTests.java
equal
deleted
inserted
replaced
23 |
23 |
24 |
24 |
25 |
25 |
26 package org.graalvm.compiler.hotspot.test; |
26 package org.graalvm.compiler.hotspot.test; |
27 |
27 |
28 import static org.graalvm.compiler.serviceprovider.JavaVersionUtil.JAVA_SPEC; |
|
29 |
|
30 import java.lang.reflect.Method; |
28 import java.lang.reflect.Method; |
31 |
29 |
32 import org.graalvm.compiler.core.test.GraalCompilerTest; |
30 import org.graalvm.compiler.core.test.GraalCompilerTest; |
33 import org.graalvm.compiler.debug.DebugContext; |
31 import org.graalvm.compiler.debug.DebugContext; |
34 import org.graalvm.compiler.graph.Node; |
32 import org.graalvm.compiler.graph.Node; |
73 } |
71 } |
74 } |
72 } |
75 return graph; |
73 return graph; |
76 } |
74 } |
77 |
75 |
|
76 private static String getMiscPackage() { |
|
77 if (JavaVersionUtil.JAVA_SPEC <= 8) { |
|
78 return "sun.misc"; |
|
79 } |
|
80 try { |
|
81 String miscPackage = "jdk.internal.access"; |
|
82 Class.forName(miscPackage + ".SharedSecrets"); |
|
83 return miscPackage; |
|
84 } catch (ClassNotFoundException e) { |
|
85 try { |
|
86 String miscPackage = "jdk.internal.misc"; |
|
87 Class.forName(miscPackage + ".SharedSecrets"); |
|
88 return miscPackage; |
|
89 } catch (ClassNotFoundException ex) { |
|
90 } |
|
91 throw new AssertionError(e); |
|
92 } |
|
93 } |
|
94 |
78 private static Object getConstantPoolForObject() { |
95 private static Object getConstantPoolForObject() { |
79 String miscPackage = JavaVersionUtil.JAVA_SPEC <= 8 ? "sun.misc" |
96 String miscPackage = getMiscPackage(); |
80 : (JavaVersionUtil.JAVA_SPEC <= 11 ? "jdk.internal.misc" : "jdk.internal.access"); |
|
81 try { |
97 try { |
82 Class<?> sharedSecretsClass = Class.forName(miscPackage + ".SharedSecrets"); |
98 Class<?> sharedSecretsClass = Class.forName(miscPackage + ".SharedSecrets"); |
83 Class<?> javaLangAccessClass = Class.forName(miscPackage + ".JavaLangAccess"); |
99 Class<?> javaLangAccessClass = Class.forName(miscPackage + ".JavaLangAccess"); |
84 Object jla = sharedSecretsClass.getDeclaredMethod("getJavaLangAccess").invoke(null); |
100 Object jla = sharedSecretsClass.getDeclaredMethod("getJavaLangAccess").invoke(null); |
85 return javaLangAccessClass.getDeclaredMethod("getConstantPool", Class.class).invoke(jla, Object.class); |
101 return javaLangAccessClass.getDeclaredMethod("getConstantPool", Class.class).invoke(jla, Object.class); |
110 |
126 |
111 /** |
127 /** |
112 * This test uses some non-public API. |
128 * This test uses some non-public API. |
113 */ |
129 */ |
114 private static void addExports(Class<?> c) { |
130 private static void addExports(Class<?> c) { |
115 String packageName = JAVA_SPEC <= 11 ? "jdk.internal.misc" : "jdk.internal.access"; |
131 ModuleSupport.exportPackageTo(String.class, getMiscPackage(), c); |
116 ModuleSupport.exportPackageTo(String.class, packageName, c); |
|
117 ModuleSupport.exportPackageTo(String.class, "jdk.internal.reflect", c); |
132 ModuleSupport.exportPackageTo(String.class, "jdk.internal.reflect", c); |
118 } |
133 } |
119 |
134 |
120 @Test |
135 @Test |
121 public void testGetSize() { |
136 public void testGetSize() { |