21 * questions.
22 */
23
24 /*
25 * @test
26 * @bug 8136421
27 * @requires vm.jvmci
28 * @library / /test/lib
29 * @library ../common/patches
30 * @modules java.base/jdk.internal.misc
31 * @modules jdk.vm.ci/jdk.vm.ci.hotspot
32 * @build jdk.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper
33 * @build compiler.jvmci.compilerToVM.ReadConfigurationTest
34 * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI
35 * compiler.jvmci.compilerToVM.ReadConfigurationTest
36 */
37
38 package compiler.jvmci.compilerToVM;
39
40 import jdk.test.lib.Asserts;
41 import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime;
42 import jdk.vm.ci.hotspot.HotSpotVMConfigAccess;
43 import jdk.vm.ci.hotspot.HotSpotVMConfigStore;
44 import jdk.vm.ci.hotspot.VMIntrinsicMethod;
45
46 public class ReadConfigurationTest {
47 public static void main(String args[]) {
48 new ReadConfigurationTest().runTest();
49 }
50
51 private void runTest() {
52 TestHotSpotVMConfig config = new TestHotSpotVMConfig(HotSpotJVMCIRuntime.runtime().getConfigStore());
53 Asserts.assertNE(config.codeCacheHighBound, 0L, "Got null address");
54 Asserts.assertNE(config.stubRoutineJintArrayCopy, 0L, "Got null address");
55
56 for (VMIntrinsicMethod m : config.getStore().getIntrinsics()) {
57 Asserts.assertNotNull(m);
58 Asserts.assertNotNull(m.declaringClass);
59 Asserts.assertFalse(m.declaringClass.contains("."),
60 "declaringClass should be in class file format: " + m.declaringClass);
61 Asserts.assertNotNull(m.name);
62 Asserts.assertNotNull(m.descriptor);
63 Asserts.assertTrue(m.id > 0);
64 }
65 }
66
67 private static class TestHotSpotVMConfig extends HotSpotVMConfigAccess {
68
69 private TestHotSpotVMConfig(HotSpotVMConfigStore store) {
70 super(store);
71 }
72
73 final long codeCacheHighBound = getFieldValue("CodeCache::_high_bound", Long.class);
74 final long stubRoutineJintArrayCopy = getFieldValue("StubRoutines::_jint_arraycopy", Long.class);
75 }
|
21 * questions.
22 */
23
24 /*
25 * @test
26 * @bug 8136421
27 * @requires vm.jvmci
28 * @library / /test/lib
29 * @library ../common/patches
30 * @modules java.base/jdk.internal.misc
31 * @modules jdk.vm.ci/jdk.vm.ci.hotspot
32 * @build jdk.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper
33 * @build compiler.jvmci.compilerToVM.ReadConfigurationTest
34 * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI
35 * compiler.jvmci.compilerToVM.ReadConfigurationTest
36 */
37
38 package compiler.jvmci.compilerToVM;
39
40 import jdk.test.lib.Asserts;
41 import jdk.vm.ci.hotspot.VMField;
42 import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime;
43 import jdk.vm.ci.hotspot.HotSpotVMConfigAccess;
44 import jdk.vm.ci.hotspot.HotSpotVMConfigStore;
45 import jdk.vm.ci.hotspot.VMIntrinsicMethod;
46
47 public class ReadConfigurationTest {
48 public static void main(String args[]) {
49 new ReadConfigurationTest().runTest();
50 }
51
52 private void runTest() {
53 HotSpotVMConfigStore store = HotSpotJVMCIRuntime.runtime().getConfigStore();
54 TestHotSpotVMConfig config = new TestHotSpotVMConfig(store);
55 Asserts.assertNE(config.codeCacheHighBound, 0L, "Got null address");
56 Asserts.assertNE(config.stubRoutineJintArrayCopy, 0L, "Got null address");
57
58 for (VMField field : store.getFields().values()) {
59 Object value = field.value;
60 if (value != null) {
61 Asserts.assertTrue(value instanceof Long || value instanceof Boolean,
62 "Got unexpected value type for VM field " + field.name + ": " + value.getClass());
63 }
64 }
65
66 for (VMIntrinsicMethod m : config.getStore().getIntrinsics()) {
67 Asserts.assertNotNull(m);
68 Asserts.assertNotNull(m.declaringClass);
69 Asserts.assertFalse(m.declaringClass.contains("."),
70 "declaringClass should be in class file format: " + m.declaringClass);
71 Asserts.assertNotNull(m.name);
72 Asserts.assertNotNull(m.descriptor);
73 Asserts.assertTrue(m.id > 0);
74 }
75 }
76
77 private static class TestHotSpotVMConfig extends HotSpotVMConfigAccess {
78
79 private TestHotSpotVMConfig(HotSpotVMConfigStore store) {
80 super(store);
81 }
82
83 final long codeCacheHighBound = getFieldValue("CodeCache::_high_bound", Long.class);
84 final long stubRoutineJintArrayCopy = getFieldValue("StubRoutines::_jint_arraycopy", Long.class);
85 }
|