18 *
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 * @bug 8152343
27 * @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
28 * @library /testlibrary /test/lib /compiler/jvmci/jdk.vm.ci.hotspot.test/src
29 * @modules jdk.vm.ci/jdk.vm.ci.meta
30 * jdk.vm.ci/jdk.vm.ci.runtime
31 * jdk.vm.ci/jdk.vm.ci.hotspot
32 * @run testng/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI
33 * jdk.vm.ci.hotspot.test.MethodHandleAccessProviderTest
34 */
35
36 package jdk.vm.ci.hotspot.test;
37
38 import java.lang.invoke.MethodHandle;
39 import java.lang.invoke.MethodHandles;
40 import java.lang.reflect.Method;
41 import jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider;
42 import jdk.vm.ci.meta.MethodHandleAccessProvider;
43 import jdk.vm.ci.meta.ResolvedJavaMethod;
44 import jdk.vm.ci.runtime.JVMCI;
45 import jdk.vm.ci.meta.JavaConstant;
46 import jdk.vm.ci.meta.MetaAccessProvider;
47 import jdk.vm.ci.meta.MethodHandleAccessProvider.IntrinsicMethod;
48 import org.testng.annotations.Test;
49 import org.testng.Assert;
50
51 public class MethodHandleAccessProviderTest {
52 private static final HotSpotConstantReflectionProvider CONSTANT_REFLECTION = (HotSpotConstantReflectionProvider) JVMCI.getRuntime().getHostJVMCIBackend().getConstantReflection();
53 private static final MethodHandleAccessProvider PROVIDER = CONSTANT_REFLECTION.getMethodHandleAccess();
54 private static final MetaAccessProvider META_ACCESS = JVMCI.getRuntime().getHostJVMCIBackend().getMetaAccess();
55
56 @Test(dataProvider = "intrinsicsPositive", dataProviderClass = MethodHandleAccessProviderData.class)
57 public void testLookupMethodHandleIntrinsic(ResolvedJavaMethod mtd, IntrinsicMethod expected) {
58 Assert.assertEquals(expected, PROVIDER.lookupMethodHandleIntrinsic(mtd), "Unexpected intrinsic returned for " + mtd);
59 }
60
61 @Test(dataProvider = "intrinsicsNegative", dataProviderClass = MethodHandleAccessProviderData.class)
62 public void testLookupMethodHandleIntrinsicNegative(ResolvedJavaMethod mtd) {
63 Assert.assertNull(PROVIDER.lookupMethodHandleIntrinsic(mtd), "Expected null return for " + mtd);
64 }
65
66 @Test(expectedExceptions = {NullPointerException.class})
67 public void testLookupMethodHandleIntrinsicNull() {
68 PROVIDER.lookupMethodHandleIntrinsic(null);
69 }
70
|
18 *
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 * @bug 8152343
27 * @requires (vm.simpleArch == "x64" | vm.simpleArch == "sparcv9" | vm.simpleArch == "aarch64")
28 * @library /testlibrary /test/lib /compiler/jvmci/jdk.vm.ci.hotspot.test/src
29 * @modules jdk.vm.ci/jdk.vm.ci.meta
30 * jdk.vm.ci/jdk.vm.ci.runtime
31 * jdk.vm.ci/jdk.vm.ci.hotspot
32 * @run testng/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI
33 * jdk.vm.ci.hotspot.test.MethodHandleAccessProviderTest
34 */
35
36 package jdk.vm.ci.hotspot.test;
37
38 import jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider;
39 import jdk.vm.ci.meta.JavaConstant;
40 import jdk.vm.ci.meta.MetaAccessProvider;
41 import jdk.vm.ci.meta.MethodHandleAccessProvider;
42 import jdk.vm.ci.meta.MethodHandleAccessProvider.IntrinsicMethod;
43 import jdk.vm.ci.meta.ResolvedJavaMethod;
44 import jdk.vm.ci.runtime.JVMCI;
45 import org.testng.Assert;
46 import org.testng.annotations.Test;
47
48 import java.lang.invoke.MethodHandle;
49 import java.lang.invoke.MethodHandles;
50 import java.lang.reflect.Method;
51
52 public class MethodHandleAccessProviderTest {
53 private static final HotSpotConstantReflectionProvider CONSTANT_REFLECTION = (HotSpotConstantReflectionProvider) JVMCI.getRuntime().getHostJVMCIBackend().getConstantReflection();
54 private static final MethodHandleAccessProvider PROVIDER = CONSTANT_REFLECTION.getMethodHandleAccess();
55 private static final MetaAccessProvider META_ACCESS = JVMCI.getRuntime().getHostJVMCIBackend().getMetaAccess();
56
57 @Test(dataProvider = "intrinsicsPositive", dataProviderClass = MethodHandleAccessProviderData.class)
58 public void testLookupMethodHandleIntrinsic(ResolvedJavaMethod mtd, IntrinsicMethod expected) {
59 Assert.assertEquals(expected, PROVIDER.lookupMethodHandleIntrinsic(mtd), "Unexpected intrinsic returned for " + mtd);
60 }
61
62 @Test(dataProvider = "intrinsicsNegative", dataProviderClass = MethodHandleAccessProviderData.class)
63 public void testLookupMethodHandleIntrinsicNegative(ResolvedJavaMethod mtd) {
64 Assert.assertNull(PROVIDER.lookupMethodHandleIntrinsic(mtd), "Expected null return for " + mtd);
65 }
66
67 @Test(expectedExceptions = {NullPointerException.class})
68 public void testLookupMethodHandleIntrinsicNull() {
69 PROVIDER.lookupMethodHandleIntrinsic(null);
70 }
71
|