31 * @library ../common/patches
32 * @modules java.base/jdk.internal.misc
33 * java.base/jdk.internal.reflect
34 * java.base/jdk.internal.org.objectweb.asm
35 * jdk.vm.ci/jdk.vm.ci.hotspot
36 * jdk.vm.ci/jdk.vm.ci.runtime
37 * jdk.vm.ci/jdk.vm.ci.meta
38 * @build jdk.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper
39 * @build sun.hotspot.WhiteBox
40 * compiler.jvmci.compilerToVM.ResolveTypeInPoolTest
41 * @run main ClassFileInstaller sun.hotspot.WhiteBox
42 * sun.hotspot.WhiteBox$WhiteBoxPermission
43 * @run main/othervm -Xbootclasspath/a:.
44 * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI
45 * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI
46 * compiler.jvmci.compilerToVM.ResolveTypeInPoolTest
47 */
48
49 package compiler.jvmci.compilerToVM;
50
51 import compiler.jvmci.compilerToVM.ConstantPoolTestsHelper.DummyClasses;
52 import compiler.jvmci.compilerToVM.ConstantPoolTestCase.ConstantTypes;
53 import static compiler.jvmci.compilerToVM.ConstantPoolTestCase.ConstantTypes.*;
54 import compiler.jvmci.compilerToVM.ConstantPoolTestCase.TestedCPEntry;
55 import compiler.jvmci.compilerToVM.ConstantPoolTestCase.Validator;
56 import java.util.HashMap;
57 import java.util.Map;
58 import jdk.vm.ci.hotspot.CompilerToVMHelper;
59 import jdk.vm.ci.hotspot.HotSpotResolvedObjectType;
60 import jdk.vm.ci.meta.ConstantPool;
61
62 /**
63 * Test for {@code jdk.vm.ci.hotspot.CompilerToVM.resolveTypeInPool} method
64 */
65 public class ResolveTypeInPoolTest {
66
67 public static void main(String[] args) throws Exception {
68 Map<ConstantTypes, Validator> typeTests = new HashMap<>();
69 typeTests.put(CONSTANT_CLASS, ResolveTypeInPoolTest::validate);
70 ConstantPoolTestCase testCase = new ConstantPoolTestCase(typeTests);
71 testCase.test();
72 // The next "Class.forName" and repeating "testCase.test()"
73 // are here for the following reason.
74 // The first test run is without dummy class initialization,
75 // which means no constant pool cache exists.
76 // The second run is with initialized class (with constant pool cache available).
77 // Some CompilerToVM methods require different input
78 // depending on whether CP cache exists or not.
79 for (DummyClasses dummy : DummyClasses.values()) {
80 Class.forName(dummy.klass.getName());
81 }
|
31 * @library ../common/patches
32 * @modules java.base/jdk.internal.misc
33 * java.base/jdk.internal.reflect
34 * java.base/jdk.internal.org.objectweb.asm
35 * jdk.vm.ci/jdk.vm.ci.hotspot
36 * jdk.vm.ci/jdk.vm.ci.runtime
37 * jdk.vm.ci/jdk.vm.ci.meta
38 * @build jdk.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper
39 * @build sun.hotspot.WhiteBox
40 * compiler.jvmci.compilerToVM.ResolveTypeInPoolTest
41 * @run main ClassFileInstaller sun.hotspot.WhiteBox
42 * sun.hotspot.WhiteBox$WhiteBoxPermission
43 * @run main/othervm -Xbootclasspath/a:.
44 * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI
45 * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI
46 * compiler.jvmci.compilerToVM.ResolveTypeInPoolTest
47 */
48
49 package compiler.jvmci.compilerToVM;
50
51 import compiler.jvmci.compilerToVM.ConstantPoolTestCase.ConstantTypes;
52 import compiler.jvmci.compilerToVM.ConstantPoolTestCase.TestedCPEntry;
53 import compiler.jvmci.compilerToVM.ConstantPoolTestCase.Validator;
54 import compiler.jvmci.compilerToVM.ConstantPoolTestsHelper.DummyClasses;
55 import jdk.vm.ci.hotspot.CompilerToVMHelper;
56 import jdk.vm.ci.hotspot.HotSpotResolvedObjectType;
57 import jdk.vm.ci.meta.ConstantPool;
58
59 import java.util.HashMap;
60 import java.util.Map;
61
62 import static compiler.jvmci.compilerToVM.ConstantPoolTestCase.ConstantTypes.CONSTANT_CLASS;
63
64 /**
65 * Test for {@code jdk.vm.ci.hotspot.CompilerToVM.resolveTypeInPool} method
66 */
67 public class ResolveTypeInPoolTest {
68
69 public static void main(String[] args) throws Exception {
70 Map<ConstantTypes, Validator> typeTests = new HashMap<>();
71 typeTests.put(CONSTANT_CLASS, ResolveTypeInPoolTest::validate);
72 ConstantPoolTestCase testCase = new ConstantPoolTestCase(typeTests);
73 testCase.test();
74 // The next "Class.forName" and repeating "testCase.test()"
75 // are here for the following reason.
76 // The first test run is without dummy class initialization,
77 // which means no constant pool cache exists.
78 // The second run is with initialized class (with constant pool cache available).
79 // Some CompilerToVM methods require different input
80 // depending on whether CP cache exists or not.
81 for (DummyClasses dummy : DummyClasses.values()) {
82 Class.forName(dummy.klass.getName());
83 }
|