< 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 >