< prev index next >
test/compiler/jvmci/compilerToVM/AsResolvedJavaMethodTest.java
Print this page
*** 34,56 ****
* jdk.vm.ci/jdk.vm.ci.hotspot
* jdk.vm.ci/jdk.vm.ci.code
* jdk.vm.ci/jdk.vm.ci.meta
* @build jdk.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper
* @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI
! * compiler.jvmci.compilerToVM.GetResolvedJavaMethodAtSlotTest
*/
package compiler.jvmci.compilerToVM;
import jdk.test.lib.Asserts;
import jdk.vm.ci.hotspot.CompilerToVMHelper;
import jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod;
! import java.util.HashMap;
! import java.util.Map;
! public class GetResolvedJavaMethodAtSlotTest {
private static class A {
{
System.out.println("Dummy");
}
--- 34,58 ----
* jdk.vm.ci/jdk.vm.ci.hotspot
* jdk.vm.ci/jdk.vm.ci.code
* jdk.vm.ci/jdk.vm.ci.meta
* @build jdk.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper
* @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI
! * compiler.jvmci.compilerToVM.AsResolvedJavaMethodTest
*/
package compiler.jvmci.compilerToVM;
import jdk.test.lib.Asserts;
import jdk.vm.ci.hotspot.CompilerToVMHelper;
import jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod;
! import java.lang.reflect.Executable;
! import java.util.Arrays;
! import java.util.ArrayList;
! import java.util.List;
! public class AsResolvedJavaMethodTest {
private static class A {
{
System.out.println("Dummy");
}
*** 79,121 ****
int f2();
String f3();
}
public static void main(String[] args) {
! Map<Class<?>, Integer> testCases = getTestCases();
! testCases.forEach(GetResolvedJavaMethodAtSlotTest::test);
}
! private static Map<Class<?>, Integer> getTestCases() {
! Map<Class<?>, Integer> testCases = new HashMap<>();
! testCases.put(A.class, 5); // ctor, init, f1, f2, f3
! testCases.put(S.class, 5); // ctor, cinit, f1, f2, f3
! testCases.put(I.class, 3); // f1, f2, f3
! testCases.put(B.class, 2); // ctor, f4
return testCases;
}
! private static void test(Class<?> aClass, int methodNumber) {
! testSlotBigger(aClass);
! testCorrectMethods(aClass, methodNumber);
! }
!
! private static void testSlotBigger(Class<?> holder) {
! HotSpotResolvedJavaMethod method
! = CompilerToVMHelper.getResolvedJavaMethodAtSlot(holder, 50);
! Asserts.assertNull(method, "Got method for non existing slot 50 in "
! + holder);
! }
!
! private static void testCorrectMethods(Class<?> holder, int methodsNumber) {
! for (int i = 0; i < methodsNumber; i++) {
! String caseName = String.format("slot %d in %s",
! i, holder.getCanonicalName());
HotSpotResolvedJavaMethod method = CompilerToVMHelper
! .getResolvedJavaMethodAtSlot(holder, i);
! Asserts.assertNotNull(method, caseName + " did not got method");
! Asserts.assertEQ(holder,
! CompilerToVMHelper.getMirror(method.getDeclaringClass()),
! caseName + " : unexpected declaring class");
}
}
}
--- 81,113 ----
int f2();
String f3();
}
public static void main(String[] args) {
! List<Class<?>> testCases = getTestCases();
! testCases.forEach(AsResolvedJavaMethodTest::test);
}
! private static List<Class<?>> getTestCases() {
! List<Class<?>> testCases = new ArrayList<>();
! testCases.add(A.class);
! testCases.add(S.class);
! testCases.add(I.class);
! testCases.add(B.class);
return testCases;
}
! private static void test(Class<?> aClass) {
! testCorrectMethods(aClass);
! }
!
! private static void testCorrectMethods(Class<?> holder) {
! List<Executable> executables = new ArrayList<>();
! executables.addAll(Arrays.asList(holder.getDeclaredMethods()));
! executables.addAll(Arrays.asList(holder.getDeclaredConstructors()));
! for (Executable executable : executables) {
HotSpotResolvedJavaMethod method = CompilerToVMHelper
! .asResolvedJavaMethod(executable);
! Asserts.assertNotNull(method, "could not convert " + method);
}
}
}
< prev index next >