Mercurial > hg > graal-jvmci-8
comparison jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaMethod.java @ 23741:6542cd8da2da
include VarHandle in signature polymorphic method test (JDK-8164214)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 23 Aug 2016 22:58:50 +0200 |
parents | 995af926c06b |
children | d6bd0b9cd0b6 |
comparison
equal
deleted
inserted
replaced
23740:724fbad94ee3 | 23741:6542cd8da2da |
---|---|
37 import java.lang.annotation.Annotation; | 37 import java.lang.annotation.Annotation; |
38 import java.lang.annotation.ElementType; | 38 import java.lang.annotation.ElementType; |
39 import java.lang.annotation.Retention; | 39 import java.lang.annotation.Retention; |
40 import java.lang.annotation.RetentionPolicy; | 40 import java.lang.annotation.RetentionPolicy; |
41 import java.lang.annotation.Target; | 41 import java.lang.annotation.Target; |
42 import java.lang.invoke.MethodHandle; | |
43 import java.lang.reflect.Constructor; | 42 import java.lang.reflect.Constructor; |
44 import java.lang.reflect.Member; | 43 import java.lang.reflect.Member; |
45 import java.lang.reflect.Method; | 44 import java.lang.reflect.Method; |
46 import java.lang.reflect.Modifier; | 45 import java.lang.reflect.Modifier; |
47 import java.lang.reflect.Type; | 46 import java.lang.reflect.Type; |
49 import java.util.HashMap; | 48 import java.util.HashMap; |
50 import java.util.HashSet; | 49 import java.util.HashSet; |
51 import java.util.Map; | 50 import java.util.Map; |
52 import java.util.Set; | 51 import java.util.Set; |
53 | 52 |
53 import org.junit.Assert; | |
54 import org.junit.Test; | |
55 | |
54 import jdk.vm.ci.meta.ConstantPool; | 56 import jdk.vm.ci.meta.ConstantPool; |
55 import jdk.vm.ci.meta.ExceptionHandler; | 57 import jdk.vm.ci.meta.ExceptionHandler; |
56 import jdk.vm.ci.meta.ResolvedJavaMethod; | 58 import jdk.vm.ci.meta.ResolvedJavaMethod; |
57 import jdk.vm.ci.meta.ResolvedJavaType; | 59 import jdk.vm.ci.meta.ResolvedJavaType; |
58 | |
59 import org.junit.Assert; | |
60 import org.junit.Test; | |
61 | 60 |
62 /** | 61 /** |
63 * Tests for {@link ResolvedJavaMethod}. | 62 * Tests for {@link ResolvedJavaMethod}. |
64 */ | 63 */ |
65 public class TestResolvedJavaMethod extends MethodUniverse { | 64 public class TestResolvedJavaMethod extends MethodUniverse { |
384 assertTrue(m.isJavaLangObjectInit()); | 383 assertTrue(m.isJavaLangObjectInit()); |
385 } else { | 384 } else { |
386 assertFalse(m.isJavaLangObjectInit()); | 385 assertFalse(m.isJavaLangObjectInit()); |
387 } | 386 } |
388 } | 387 } |
389 } | |
390 | |
391 @Test | |
392 public void isSignaturePolymorphicTest() { | |
393 ResolvedJavaType methodHandleType = metaAccess.lookupJavaType(MethodHandle.class); | |
394 assertTrue(ResolvedJavaMethod.isSignaturePolymorphic(methodHandleType, "invokeExact", metaAccess)); | |
395 assertTrue(ResolvedJavaMethod.isSignaturePolymorphic(methodHandleType, "invoke", metaAccess)); | |
396 assertTrue(ResolvedJavaMethod.isSignaturePolymorphic(methodHandleType, "invokeBasic", metaAccess)); | |
397 assertTrue(ResolvedJavaMethod.isSignaturePolymorphic(methodHandleType, "linkToVirtual", metaAccess)); | |
398 assertTrue(ResolvedJavaMethod.isSignaturePolymorphic(methodHandleType, "linkToStatic", metaAccess)); | |
399 assertTrue(ResolvedJavaMethod.isSignaturePolymorphic(methodHandleType, "linkToSpecial", metaAccess)); | |
400 assertTrue(ResolvedJavaMethod.isSignaturePolymorphic(methodHandleType, "linkToInterface", metaAccess)); | |
401 assertFalse(ResolvedJavaMethod.isSignaturePolymorphic(methodHandleType, "type", metaAccess)); | |
402 assertFalse(ResolvedJavaMethod.isSignaturePolymorphic(metaAccess.lookupJavaType(Object.class), "toString", metaAccess)); | |
403 } | 388 } |
404 | 389 |
405 /** | 390 /** |
406 * All public non-final methods should be available in the vtable. | 391 * All public non-final methods should be available in the vtable. |
407 */ | 392 */ |