< prev index next >

test/hotspot/jtreg/runtime/condy/CondyLDCTest.java

Print this page
rev 59076 : [mq]: 8243945

*** 28,64 **** * @modules java.base/jdk.internal.misc * @library /test/lib * @compile CondyUseLDC_W.jasm * @compile CondyBadLDC2_W.jasm * @compile CondyBadLDC.jasm ! * @run main/othervm -Xverify:all CondyLDCTest */ import jdk.test.lib.process.ProcessTools; import jdk.test.lib.process.OutputAnalyzer; import jdk.test.lib.compiler.InMemoryJavaCompiler; public class CondyLDCTest { public static void main(String args[]) throws Throwable { // 1. Test a ldc_w instruction can be used with condy's which generate // loadable constants of the following types: byte, char, short, float, integer, boolean. ! ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("CondyUseLDC_W"); OutputAnalyzer oa = new OutputAnalyzer(pb.start()); oa.shouldNotContain("VerifyError"); oa.shouldHaveExitValue(0); // 2. Test ldc2_w of a condy which returns a dynamically generated // float constant, generates a VerifyError. ! pb = ProcessTools.createJavaProcessBuilder("CondyBadLDC2_W"); oa = new OutputAnalyzer(pb.start()); oa.shouldContain("java.lang.VerifyError: Illegal type at constant pool entry"); oa.shouldContain("CondyBadLDC2_W.F()F @0: ldc2_w"); oa.shouldHaveExitValue(1); // 3. Test a ldc of a condy which returns a dynamically generated // double constant, generates a VerifyError. ! pb = ProcessTools.createJavaProcessBuilder("CondyBadLDC"); oa = new OutputAnalyzer(pb.start()); oa.shouldContain("java.lang.VerifyError: Illegal type at constant pool entry"); oa.shouldContain("CondyBadLDC.D()D @0: ldc"); oa.shouldHaveExitValue(1); } --- 28,67 ---- * @modules java.base/jdk.internal.misc * @library /test/lib * @compile CondyUseLDC_W.jasm * @compile CondyBadLDC2_W.jasm * @compile CondyBadLDC.jasm ! * @run driver CondyLDCTest */ import jdk.test.lib.process.ProcessTools; import jdk.test.lib.process.OutputAnalyzer; import jdk.test.lib.compiler.InMemoryJavaCompiler; public class CondyLDCTest { public static void main(String args[]) throws Throwable { // 1. Test a ldc_w instruction can be used with condy's which generate // loadable constants of the following types: byte, char, short, float, integer, boolean. ! ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xverify:all", ! "CondyUseLDC_W"); OutputAnalyzer oa = new OutputAnalyzer(pb.start()); oa.shouldNotContain("VerifyError"); oa.shouldHaveExitValue(0); // 2. Test ldc2_w of a condy which returns a dynamically generated // float constant, generates a VerifyError. ! pb = ProcessTools.createJavaProcessBuilder("-Xverify:all", ! "CondyBadLDC2_W"); oa = new OutputAnalyzer(pb.start()); oa.shouldContain("java.lang.VerifyError: Illegal type at constant pool entry"); oa.shouldContain("CondyBadLDC2_W.F()F @0: ldc2_w"); oa.shouldHaveExitValue(1); // 3. Test a ldc of a condy which returns a dynamically generated // double constant, generates a VerifyError. ! pb = ProcessTools.createJavaProcessBuilder("-Xverify:all", ! "CondyBadLDC"); oa = new OutputAnalyzer(pb.start()); oa.shouldContain("java.lang.VerifyError: Illegal type at constant pool entry"); oa.shouldContain("CondyBadLDC.D()D @0: ldc"); oa.shouldHaveExitValue(1); }
< prev index next >