30 * @compile ClassB.java
31 * ItablesVtableTest.java
32 * @modules java.base/jdk.internal.misc
33 * java.management
34 * @run driver ItablesTest
35 */
36
37 import jdk.test.lib.process.ProcessTools;
38 import jdk.test.lib.process.OutputAnalyzer;
39 import jdk.test.lib.Platform;
40
41 public class ItablesTest {
42 public static void main(String[] args) throws Exception {
43 if (Platform.isDebugBuild()) {
44 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xlog:itables=trace", "ClassB");
45 OutputAnalyzer output = new OutputAnalyzer(pb.start());
46 output.shouldContain(": Initializing itables for ClassB");
47 output.shouldContain(": Initializing itable indices for interface ");
48 output.shouldContain("itable index ");
49 output.shouldContain("target: ClassB.Method1()V, method_holder: ClassB target_method flags: public");
50 output.shouldContain("invokeinterface resolved method: caller-class");
51 output.shouldContain("invokespecial resolved method: caller-class:ClassB");
52 output.shouldContain("invokespecial selected method: resolved-class:ClassB");
53 output.shouldContain("invokeinterface selected method: receiver-class");
54 output.shouldHaveExitValue(0);
55
56 pb = ProcessTools.createJavaProcessBuilder("-Xlog:itables=trace", "ItablesVtableTest");
57 output = new OutputAnalyzer(pb.start());
58 output.shouldContain("vtable index ");
59 output.shouldHaveExitValue(0);
60 }
61 }
62 }
|
30 * @compile ClassB.java
31 * ItablesVtableTest.java
32 * @modules java.base/jdk.internal.misc
33 * java.management
34 * @run driver ItablesTest
35 */
36
37 import jdk.test.lib.process.ProcessTools;
38 import jdk.test.lib.process.OutputAnalyzer;
39 import jdk.test.lib.Platform;
40
41 public class ItablesTest {
42 public static void main(String[] args) throws Exception {
43 if (Platform.isDebugBuild()) {
44 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xlog:itables=trace", "ClassB");
45 OutputAnalyzer output = new OutputAnalyzer(pb.start());
46 output.shouldContain(": Initializing itables for ClassB");
47 output.shouldContain(": Initializing itable indices for interface ");
48 output.shouldContain("itable index ");
49 output.shouldContain("target: ClassB.Method1()V, method_holder: ClassB target_method flags: public");
50 output.shouldContain("invokeinterface resolved interface method: caller-class");
51 output.shouldContain("invokespecial resolved method: caller-class:ClassB");
52 output.shouldContain("invokespecial selected method: resolved-class:ClassB");
53 output.shouldContain("invokeinterface selected method: receiver-class");
54 output.shouldHaveExitValue(0);
55
56 pb = ProcessTools.createJavaProcessBuilder("-Xlog:itables=trace", "ItablesVtableTest");
57 output = new OutputAnalyzer(pb.start());
58 output.shouldContain("vtable index ");
59 output.shouldHaveExitValue(0);
60 }
61 }
62 }
|