< prev index next >

test/compiler/intrinsics/klass/CastNullCheckDroppingsTest.java

Print this page
rev 11557 : 8132919: use package in compiler tests
Reviewed-by: duke

*** 22,56 **** */ /* * @test NullCheckDroppingsTest * @bug 8054492 ! * @summary "Casting can result in redundant null checks in generated code" * @library /testlibrary /test/lib * @modules java.base/jdk.internal.misc * java.management * @build ClassFileInstaller sun.hotspot.WhiteBox jdk.test.lib.* ! * @build NullCheckDroppingsTest ! * @run main ClassFileInstaller sun.hotspot.WhiteBox * sun.hotspot.WhiteBox$WhiteBoxPermission ! * @run main ClassFileInstaller jdk.test.lib.Platform * @run main/othervm -Xbootclasspath/a:. -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI * -Xmixed -XX:-BackgroundCompilation -XX:-TieredCompilation -XX:CompileThreshold=1000 ! * -XX:CompileCommand=exclude,NullCheckDroppingsTest::runTest NullCheckDroppingsTest */ import sun.hotspot.WhiteBox; import sun.hotspot.code.NMethod; - import jdk.test.lib.Platform; - import java.lang.reflect.Method; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; import java.util.function.BiFunction; ! public class NullCheckDroppingsTest { private static final WhiteBox WHITE_BOX = WhiteBox.getWhiteBox(); static final BiFunction<Class, Object, Object> fCast = (c, o) -> c.cast(o); --- 22,60 ---- */ /* * @test NullCheckDroppingsTest * @bug 8054492 ! * @summary Casting can result in redundant null checks in generated code * @library /testlibrary /test/lib * @modules java.base/jdk.internal.misc * java.management + * * @build ClassFileInstaller sun.hotspot.WhiteBox jdk.test.lib.* ! * @build compiler.intrinsics.klass.CastNullCheckDroppingsTest ! * @run driver ClassFileInstaller sun.hotspot.WhiteBox * sun.hotspot.WhiteBox$WhiteBoxPermission ! * jdk.test.lib.Platform * @run main/othervm -Xbootclasspath/a:. -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI * -Xmixed -XX:-BackgroundCompilation -XX:-TieredCompilation -XX:CompileThreshold=1000 ! * -XX:CompileCommand=exclude,compiler.intrinsics.klass.CastNullCheckDroppingsTest::runTest ! * compiler.intrinsics.klass.CastNullCheckDroppingsTest */ + package compiler.intrinsics.klass; + + import jdk.test.lib.Platform; import sun.hotspot.WhiteBox; import sun.hotspot.code.NMethod; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; + import java.lang.reflect.Method; import java.util.function.BiFunction; ! public class CastNullCheckDroppingsTest { private static final WhiteBox WHITE_BOX = WhiteBox.getWhiteBox(); static final BiFunction<Class, Object, Object> fCast = (c, o) -> c.cast(o);
*** 57,67 **** static final MethodHandle SET_SSINK; static final MethodHandle MH_CAST; static { try { ! SET_SSINK = MethodHandles.lookup().findSetter(NullCheckDroppingsTest.class, "ssink", String.class); MH_CAST = MethodHandles.lookup().findVirtual(Class.class, "cast", MethodType.methodType(Object.class, Object.class)); } catch (Exception e) { --- 61,71 ---- static final MethodHandle SET_SSINK; static final MethodHandle MH_CAST; static { try { ! SET_SSINK = MethodHandles.lookup().findSetter(CastNullCheckDroppingsTest.class, "ssink", String.class); MH_CAST = MethodHandles.lookup().findVirtual(Class.class, "cast", MethodType.methodType(Object.class, Object.class)); } catch (Exception e) {
*** 93,125 **** // Make sure Tiered compilation is disabled if (WHITE_BOX.getBooleanVMFlag("TieredCompilation")) { throw new AssertionError("Tiered compilation enabled"); } ! Method methodClassCast = NullCheckDroppingsTest.class.getDeclaredMethod("testClassCast", String.class); ! Method methodMHCast = NullCheckDroppingsTest.class.getDeclaredMethod("testMHCast", String.class); ! Method methodMHSetter = NullCheckDroppingsTest.class.getDeclaredMethod("testMHSetter", String.class); ! Method methodFunction = NullCheckDroppingsTest.class.getDeclaredMethod("testFunction", String.class); ! NullCheckDroppingsTest t = new NullCheckDroppingsTest(); t.runTest(methodClassCast, false); t.runTest(methodMHCast, false); t.runTest(methodMHSetter, false); t.runTest(methodFunction, false); // Edge cases ! Method methodClassCastNull = NullCheckDroppingsTest.class.getDeclaredMethod("testClassCastNull", String.class); ! Method methodNullClassCast = NullCheckDroppingsTest.class.getDeclaredMethod("testNullClassCast", String.class); ! Method methodClassCastObj = NullCheckDroppingsTest.class.getDeclaredMethod("testClassCastObj", Object.class); ! Method methodObjClassCast = NullCheckDroppingsTest.class.getDeclaredMethod("testObjClassCast", String.class); ! Method methodVarClassCast = NullCheckDroppingsTest.class.getDeclaredMethod("testVarClassCast", String.class); ! Method methodClassCastInt = NullCheckDroppingsTest.class.getDeclaredMethod("testClassCastInt", Object.class); ! Method methodIntClassCast = NullCheckDroppingsTest.class.getDeclaredMethod("testIntClassCast", Object.class); ! Method methodClassCastint = NullCheckDroppingsTest.class.getDeclaredMethod("testClassCastint", Object.class); ! Method methodintClassCast = NullCheckDroppingsTest.class.getDeclaredMethod("testintClassCast", Object.class); ! Method methodClassCastPrim = NullCheckDroppingsTest.class.getDeclaredMethod("testClassCastPrim", Object.class); ! Method methodPrimClassCast = NullCheckDroppingsTest.class.getDeclaredMethod("testPrimClassCast", Object.class); t.runTest(methodClassCastNull, false); t.runTest(methodNullClassCast, false); t.runTest(methodClassCastObj, false); t.runTest(methodObjClassCast, true); --- 97,129 ---- // Make sure Tiered compilation is disabled if (WHITE_BOX.getBooleanVMFlag("TieredCompilation")) { throw new AssertionError("Tiered compilation enabled"); } ! Method methodClassCast = CastNullCheckDroppingsTest.class.getDeclaredMethod("testClassCast", String.class); ! Method methodMHCast = CastNullCheckDroppingsTest.class.getDeclaredMethod("testMHCast", String.class); ! Method methodMHSetter = CastNullCheckDroppingsTest.class.getDeclaredMethod("testMHSetter", String.class); ! Method methodFunction = CastNullCheckDroppingsTest.class.getDeclaredMethod("testFunction", String.class); ! CastNullCheckDroppingsTest t = new CastNullCheckDroppingsTest(); t.runTest(methodClassCast, false); t.runTest(methodMHCast, false); t.runTest(methodMHSetter, false); t.runTest(methodFunction, false); // Edge cases ! Method methodClassCastNull = CastNullCheckDroppingsTest.class.getDeclaredMethod("testClassCastNull", String.class); ! Method methodNullClassCast = CastNullCheckDroppingsTest.class.getDeclaredMethod("testNullClassCast", String.class); ! Method methodClassCastObj = CastNullCheckDroppingsTest.class.getDeclaredMethod("testClassCastObj", Object.class); ! Method methodObjClassCast = CastNullCheckDroppingsTest.class.getDeclaredMethod("testObjClassCast", String.class); ! Method methodVarClassCast = CastNullCheckDroppingsTest.class.getDeclaredMethod("testVarClassCast", String.class); ! Method methodClassCastInt = CastNullCheckDroppingsTest.class.getDeclaredMethod("testClassCastInt", Object.class); ! Method methodIntClassCast = CastNullCheckDroppingsTest.class.getDeclaredMethod("testIntClassCast", Object.class); ! Method methodClassCastint = CastNullCheckDroppingsTest.class.getDeclaredMethod("testClassCastint", Object.class); ! Method methodintClassCast = CastNullCheckDroppingsTest.class.getDeclaredMethod("testintClassCast", Object.class); ! Method methodClassCastPrim = CastNullCheckDroppingsTest.class.getDeclaredMethod("testClassCastPrim", Object.class); ! Method methodPrimClassCast = CastNullCheckDroppingsTest.class.getDeclaredMethod("testPrimClassCast", Object.class); t.runTest(methodClassCastNull, false); t.runTest(methodNullClassCast, false); t.runTest(methodClassCastObj, false); t.runTest(methodObjClassCast, true);
< prev index next >