< prev index next >

test/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java

Print this page




 166         }
 167     }
 168 
 169     @Test
 170     public void isInstanceTest() {
 171         for (ConstantValue cv : constants()) {
 172             JavaConstant c = cv.value;
 173             if (c.getJavaKind() == JavaKind.Object && !c.isNull()) {
 174                 ResolvedJavaType cType = metaAccess.lookupJavaType(c);
 175                 for (ResolvedJavaType t : javaTypes) {
 176                     if (t.isAssignableFrom(cType)) {
 177                         assertTrue(t.isInstance(c));
 178                     } else {
 179                         assertFalse(t.isInstance(c));
 180                     }
 181                 }
 182             }
 183         }
 184     }
 185 
 186     private static Class<?> asExactClass(Class<?> c) {
 187         if (c.isArray()) {
 188             if (asExactClass(c.getComponentType()) != null) {
 189                 return c;
 190             }
 191         } else {
 192             if (c.isPrimitive() || Modifier.isFinal(c.getModifiers())) {
 193                 return c;
 194             }
 195         }
 196         return null;
 197     }
 198 
 199     @Test
 200     public void asExactTypeTest() {
 201         for (Class<?> c : classes) {
 202             ResolvedJavaType type = metaAccess.lookupJavaType(c);
 203             ResolvedJavaType exactType = type.asExactType();
 204             Class<?> expected = asExactClass(c);
 205             if (expected == null) {
 206                 assertTrue("exact(" + c.getName() + ") != null", exactType == null);
 207             } else {
 208                 assertNotNull(exactType);
 209                 assertTrue(exactType.equals(metaAccess.lookupJavaType(expected)));
 210             }
 211         }
 212     }
 213 
 214     @Test
 215     public void getSuperclassTest() {
 216         for (Class<?> c : classes) {
 217             ResolvedJavaType type = metaAccess.lookupJavaType(c);
 218             Class<?> expected = c.getSuperclass();
 219             ResolvedJavaType actual = type.getSuperclass();
 220             if (expected == null) {
 221                 assertTrue(actual == null);
 222             } else {
 223                 assertNotNull(actual);
 224                 assertTrue(actual.equals(metaAccess.lookupJavaType(expected)));
 225             }
 226         }
 227     }
 228 
 229     @Test
 230     public void getInterfacesTest() {
 231         for (Class<?> c : classes) {
 232             ResolvedJavaType type = metaAccess.lookupJavaType(c);
 233             Class<?>[] expected = c.getInterfaces();




 166         }
 167     }
 168 
 169     @Test
 170     public void isInstanceTest() {
 171         for (ConstantValue cv : constants()) {
 172             JavaConstant c = cv.value;
 173             if (c.getJavaKind() == JavaKind.Object && !c.isNull()) {
 174                 ResolvedJavaType cType = metaAccess.lookupJavaType(c);
 175                 for (ResolvedJavaType t : javaTypes) {
 176                     if (t.isAssignableFrom(cType)) {
 177                         assertTrue(t.isInstance(c));
 178                     } else {
 179                         assertFalse(t.isInstance(c));
 180                     }
 181                 }
 182             }
 183         }
 184     }
 185 




























 186     @Test
 187     public void getSuperclassTest() {
 188         for (Class<?> c : classes) {
 189             ResolvedJavaType type = metaAccess.lookupJavaType(c);
 190             Class<?> expected = c.getSuperclass();
 191             ResolvedJavaType actual = type.getSuperclass();
 192             if (expected == null) {
 193                 assertTrue(actual == null);
 194             } else {
 195                 assertNotNull(actual);
 196                 assertTrue(actual.equals(metaAccess.lookupJavaType(expected)));
 197             }
 198         }
 199     }
 200 
 201     @Test
 202     public void getInterfacesTest() {
 203         for (Class<?> c : classes) {
 204             ResolvedJavaType type = metaAccess.lookupJavaType(c);
 205             Class<?>[] expected = c.getInterfaces();


< prev index next >