< prev index next >
test/runtime/modules/PatchModule/PatchModuleTraceCL.java
Print this page
*** 23,83 ****
/*
* @test
* @bug 8069469
* @summary Make sure -Xlog:classload=info works properly with "modules" jimage,
! -Xpatch, and with -Xbootclasspath/a
* @modules java.base/jdk.internal.misc
* @library /testlibrary
! * @compile XpatchMain.java
! * @run main XpatchTraceCL
*/
import java.io.File;
import jdk.test.lib.*;
! public class XpatchTraceCL {
public static void main(String[] args) throws Exception {
String source = "package javax.naming.spi; " +
"public class NamingManager { " +
" static { " +
" System.out.println(\"I pass!\"); " +
" } " +
"}";
! // Test -Xlog:classload=info output for -Xpatch
ClassFileInstaller.writeClassToDisk("javax/naming/spi/NamingManager",
InMemoryJavaCompiler.compile("javax.naming.spi.NamingManager", source, "-Xmodule:java.naming"),
"mods/java.naming");
! ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xpatch:java.naming=mods/java.naming",
! "-Xlog:class+load=info", "XpatchMain", "javax.naming.spi.NamingManager");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
// "modules" jimage case.
output.shouldContain("[class,load] java.lang.Thread source: jrt:/java.base");
! // -Xpatch case.
output.shouldContain("[class,load] javax.naming.spi.NamingManager source: mods/java.naming");
// -cp case.
! output.shouldContain("[class,load] XpatchMain source: file");
// Test -Xlog:classload=info output for -Xbootclasspath/a
! source = "package XpatchTraceCL_pkg; " +
"public class ItIsI { " +
" static { " +
" System.out.println(\"I also pass!\"); " +
" } " +
"}";
! ClassFileInstaller.writeClassToDisk("XpatchTraceCL_pkg/ItIsI",
! InMemoryJavaCompiler.compile("XpatchTraceCL_pkg.ItIsI", source),
"xbcp");
pb = ProcessTools.createJavaProcessBuilder("-Xbootclasspath/a:xbcp",
! "-Xlog:class+load=info", "XpatchMain", "XpatchTraceCL_pkg.ItIsI");
output = new OutputAnalyzer(pb.start());
// -Xbootclasspath/a case.
! output.shouldContain("[class,load] XpatchTraceCL_pkg.ItIsI source: xbcp");
output.shouldHaveExitValue(0);
}
}
--- 23,83 ----
/*
* @test
* @bug 8069469
* @summary Make sure -Xlog:classload=info works properly with "modules" jimage,
! --patch-module, and with -Xbootclasspath/a
* @modules java.base/jdk.internal.misc
* @library /testlibrary
! * @compile PatchModuleMain.java
! * @run main PatchModuleTraceCL
*/
import java.io.File;
import jdk.test.lib.*;
! public class PatchModuleTraceCL {
public static void main(String[] args) throws Exception {
String source = "package javax.naming.spi; " +
"public class NamingManager { " +
" static { " +
" System.out.println(\"I pass!\"); " +
" } " +
"}";
! // Test -Xlog:classload=info output for --patch-module
ClassFileInstaller.writeClassToDisk("javax/naming/spi/NamingManager",
InMemoryJavaCompiler.compile("javax.naming.spi.NamingManager", source, "-Xmodule:java.naming"),
"mods/java.naming");
! ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("--patch-module=java.naming=mods/java.naming",
! "-Xlog:class+load=info", "PatchModuleMain", "javax.naming.spi.NamingManager");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
// "modules" jimage case.
output.shouldContain("[class,load] java.lang.Thread source: jrt:/java.base");
! // --patch-module case.
output.shouldContain("[class,load] javax.naming.spi.NamingManager source: mods/java.naming");
// -cp case.
! output.shouldContain("[class,load] PatchModuleMain source: file");
// Test -Xlog:classload=info output for -Xbootclasspath/a
! source = "package PatchModuleTraceCL_pkg; " +
"public class ItIsI { " +
" static { " +
" System.out.println(\"I also pass!\"); " +
" } " +
"}";
! ClassFileInstaller.writeClassToDisk("PatchModuleTraceCL_pkg/ItIsI",
! InMemoryJavaCompiler.compile("PatchModuleTraceCL_pkg.ItIsI", source),
"xbcp");
pb = ProcessTools.createJavaProcessBuilder("-Xbootclasspath/a:xbcp",
! "-Xlog:class+load=info", "PatchModuleMain", "PatchModuleTraceCL_pkg.ItIsI");
output = new OutputAnalyzer(pb.start());
// -Xbootclasspath/a case.
! output.shouldContain("[class,load] PatchModuleTraceCL_pkg.ItIsI source: xbcp");
output.shouldHaveExitValue(0);
}
}
< prev index next >