Mercurial > hg > graal-jvmci-8
diff jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaMethod.java @ 23789:0cb263db490f
use MethodParameters attribute instead of depending on -g option for sanity checks (JDK-8168915)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 04 Nov 2016 14:22:47 +0100 |
parents | d6bd0b9cd0b6 |
children | 224f43824e2b |
line wrap: on
line diff
--- a/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaMethod.java Fri Nov 04 14:18:01 2016 +0100 +++ b/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaMethod.java Fri Nov 04 14:22:47 2016 +0100 @@ -29,6 +29,7 @@ package jdk.vm.ci.runtime.test; +import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -56,6 +57,7 @@ import jdk.vm.ci.meta.ConstantPool; import jdk.vm.ci.meta.ExceptionHandler; import jdk.vm.ci.meta.ResolvedJavaMethod; +import jdk.vm.ci.meta.ResolvedJavaMethod.Parameter; import jdk.vm.ci.meta.ResolvedJavaType; /** @@ -262,6 +264,27 @@ } } + @Test + public void getParametersTest() { + for (Map.Entry<Method, ResolvedJavaMethod> e : methods.entrySet()) { + java.lang.reflect.Parameter[] expected = e.getKey().getParameters(); + Parameter[] actual = e.getValue().getParameters(); + assertEquals(actual.length, expected.length); + for (int i = 0; i < actual.length; i++) { + java.lang.reflect.Parameter exp = expected[i]; + Parameter act = actual[i]; + System.out.println(exp + " " + act); + assertEquals(exp.getName(), act.getName()); + assertEquals(exp.getModifiers(), act.getModifiers()); + assertEquals(exp.getModifiers(), act.getModifiers()); + assertArrayEquals(exp.getAnnotations(), act.getAnnotations()); + assertEquals(exp.getType().getName(), act.getType().toClassName()); + assertEquals(exp.getParameterizedType(), act.getParameterizedType()); + assertEquals(metaAccess.lookupJavaMethod(exp.getDeclaringExecutable()), act.getDeclaringMethod()); + } + } + } + @Test(timeout = 1000L) public void getAnnotationTest() throws NoSuchMethodException { ResolvedJavaMethod method = metaAccess.lookupJavaMethod(getClass().getDeclaredMethod("getAnnotationTest"));