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
26 * @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
27 * @library ../../../../../
28 * @modules java.base/jdk.internal.reflect
29 * jdk.vm.ci/jdk.vm.ci.meta
30 * jdk.vm.ci/jdk.vm.ci.runtime
31 * jdk.vm.ci/jdk.vm.ci.common
32 * java.base/jdk.internal.misc
33 * @build jdk.vm.ci.runtime.test.TestResolvedJavaType
34 * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI jdk.vm.ci.runtime.test.TestResolvedJavaType
35 */
36
37 package jdk.vm.ci.runtime.test;
38
39 import static java.lang.reflect.Modifier.isAbstract;
40 import static java.lang.reflect.Modifier.isFinal;
41 import static java.lang.reflect.Modifier.isPrivate;
42 import static java.lang.reflect.Modifier.isProtected;
43 import static java.lang.reflect.Modifier.isPublic;
44 import static java.lang.reflect.Modifier.isStatic;
45 import static org.junit.Assert.assertArrayEquals;
46 import static org.junit.Assert.assertEquals;
47 import static org.junit.Assert.assertFalse;
48 import static org.junit.Assert.assertNotNull;
49 import static org.junit.Assert.assertNull;
50 import static org.junit.Assert.assertTrue;
51
52 import java.lang.annotation.Annotation;
53 import java.lang.reflect.Field;
54 import java.lang.reflect.Method;
55 import java.lang.reflect.Modifier;
56 import java.util.Arrays;
57 import java.util.Collections;
58 import java.util.HashMap;
59 import java.util.HashSet;
60 import java.util.Map;
61 import java.util.Set;
62
63 import jdk.vm.ci.common.JVMCIError;
64 import jdk.vm.ci.meta.Assumptions.AssumptionResult;
65 import jdk.vm.ci.meta.JavaConstant;
66 import jdk.vm.ci.meta.JavaKind;
67 import jdk.vm.ci.meta.ModifiersProvider;
68 import jdk.vm.ci.meta.ResolvedJavaField;
69 import jdk.vm.ci.meta.ResolvedJavaMethod;
70 import jdk.vm.ci.meta.ResolvedJavaType;
71
72 import org.junit.Test;
73
74 import jdk.internal.reflect.ConstantPool;
75
76 /**
77 * Tests for {@link ResolvedJavaType}.
78 */
79 public class TestResolvedJavaType extends TypeUniverse {
80
81 public TestResolvedJavaType() {
82 }
83
84 @Test
85 public void findInstanceFieldWithOffsetTest() {
86 for (Class<?> c : classes) {
87 ResolvedJavaType type = metaAccess.lookupJavaType(c);
88 Set<Field> reflectionFields = getInstanceFields(c, true);
89 for (Field f : reflectionFields) {
90 ResolvedJavaField rf = lookupField(type.getInstanceFields(true), f);
91 assertNotNull(rf);
92 long offset = isStatic(f.getModifiers()) ? unsafe.staticFieldOffset(f) : unsafe.objectFieldOffset(f);
93 ResolvedJavaField result = type.findInstanceFieldWithOffset(offset, rf.getJavaKind());
94 assertNotNull(result);
95 assertTrue(fieldsEqual(f, result));
|
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
26 * @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
27 * @library ../../../../../
28 * @modules java.base/jdk.internal.reflect
29 * jdk.vm.ci/jdk.vm.ci.meta
30 * jdk.vm.ci/jdk.vm.ci.runtime
31 * jdk.vm.ci/jdk.vm.ci.common
32 * java.base/jdk.internal.misc
33 * @build jdk.vm.ci.runtime.test.TestResolvedJavaType
34 * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI jdk.vm.ci.runtime.test.TestResolvedJavaType
35 */
36
37 package jdk.vm.ci.runtime.test;
38
39 import jdk.internal.reflect.ConstantPool;
40 import jdk.vm.ci.common.JVMCIError;
41 import jdk.vm.ci.meta.Assumptions.AssumptionResult;
42 import jdk.vm.ci.meta.JavaConstant;
43 import jdk.vm.ci.meta.JavaKind;
44 import jdk.vm.ci.meta.ModifiersProvider;
45 import jdk.vm.ci.meta.ResolvedJavaField;
46 import jdk.vm.ci.meta.ResolvedJavaMethod;
47 import jdk.vm.ci.meta.ResolvedJavaType;
48 import org.junit.Test;
49
50 import java.lang.annotation.Annotation;
51 import java.lang.reflect.Field;
52 import java.lang.reflect.Method;
53 import java.lang.reflect.Modifier;
54 import java.util.Arrays;
55 import java.util.Collections;
56 import java.util.HashMap;
57 import java.util.HashSet;
58 import java.util.Map;
59 import java.util.Set;
60
61 import static java.lang.reflect.Modifier.isAbstract;
62 import static java.lang.reflect.Modifier.isFinal;
63 import static java.lang.reflect.Modifier.isPrivate;
64 import static java.lang.reflect.Modifier.isProtected;
65 import static java.lang.reflect.Modifier.isPublic;
66 import static java.lang.reflect.Modifier.isStatic;
67 import static org.junit.Assert.assertArrayEquals;
68 import static org.junit.Assert.assertEquals;
69 import static org.junit.Assert.assertFalse;
70 import static org.junit.Assert.assertNotNull;
71 import static org.junit.Assert.assertNull;
72 import static org.junit.Assert.assertTrue;
73
74 /**
75 * Tests for {@link ResolvedJavaType}.
76 */
77 public class TestResolvedJavaType extends TypeUniverse {
78
79 public TestResolvedJavaType() {
80 }
81
82 @Test
83 public void findInstanceFieldWithOffsetTest() {
84 for (Class<?> c : classes) {
85 ResolvedJavaType type = metaAccess.lookupJavaType(c);
86 Set<Field> reflectionFields = getInstanceFields(c, true);
87 for (Field f : reflectionFields) {
88 ResolvedJavaField rf = lookupField(type.getInstanceFields(true), f);
89 assertNotNull(rf);
90 long offset = isStatic(f.getModifiers()) ? unsafe.staticFieldOffset(f) : unsafe.objectFieldOffset(f);
91 ResolvedJavaField result = type.findInstanceFieldWithOffset(offset, rf.getJavaKind());
92 assertNotNull(result);
93 assertTrue(fieldsEqual(f, result));
|