test/runtime/logging/VtablesTest.java
Print this page
*** 44,57 ****
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xlog:vtables=trace", "ClassB");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldContain("copy vtable from ClassA to ClassB");
output.shouldContain("Initializing: ClassB");
output.shouldContain("adding ClassB.Method1()V");
! output.shouldContain("] overriding with ClassB::ClassB.Method2()V");
output.shouldContain("invokevirtual resolved method: caller-class:ClassB");
output.shouldContain("invokevirtual selected method: receiver-class:ClassB");
! output.shouldContain("NOT overriding with p2.D::p2.D.nooverride()V");
output.shouldHaveExitValue(0);
pb = ProcessTools.createJavaProcessBuilder("-Xlog:vtables=trace", "p1/C");
output = new OutputAnalyzer(pb.start());
output.shouldContain("transitive overriding superclass ");
--- 44,57 ----
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xlog:vtables=trace", "ClassB");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
output.shouldContain("copy vtable from ClassA to ClassB");
output.shouldContain("Initializing: ClassB");
output.shouldContain("adding ClassB.Method1()V");
! output.shouldContain("] overriding with ClassB.Method2()V");
output.shouldContain("invokevirtual resolved method: caller-class:ClassB");
output.shouldContain("invokevirtual selected method: receiver-class:ClassB");
! output.shouldContain("NOT overriding with p2.D.nooverride()V");
output.shouldHaveExitValue(0);
pb = ProcessTools.createJavaProcessBuilder("-Xlog:vtables=trace", "p1/C");
output = new OutputAnalyzer(pb.start());
output.shouldContain("transitive overriding superclass ");