< prev index next >
test/hotspot/jtreg/runtime/cds/appcds/jigsaw/modulepath/ModulePathAndCP.java
Print this page
@@ -102,33 +102,35 @@
OutputAnalyzer output = TestCommon.createArchive(
null, appClasses,
"--module-path", moduleDir.toString(),
"-m", MAIN_MODULE);
TestCommon.checkDump(output);
- String prefix[] = {"-Djava.class.path=", "-Xlog:class+load=trace"};
+ String prefix[] = {"-Djava.class.path=", "-Xlog:cds,class+load=trace"};
prefix = TestCommon.concat(prefix, extra_runtime_args);
// run with the archive with the --module-path the same as the one during
// dump time. The classes should be loaded from the archive.
TestCommon.runWithModules(prefix,
null, // --upgrade-module-path
moduleDir.toString(), // --module-path
MAIN_MODULE) // -m
.assertNormalExit(out -> {
out.shouldContain("[class,load] com.greetings.Main source: shared objects file")
- .shouldContain("[class,load] org.astro.World source: shared objects file");
+ .shouldContain("[class,load] org.astro.World source: shared objects file")
+ .shouldContain("--module-path = " + moduleDir.toString());
});
// run with the archive with the --module-path different from the one during
// dump time. The classes should be loaded from the jar files.
TestCommon.runWithModules(prefix,
null, // --upgrade-module-path
moduleDir2.toString(), // --module-path
MAIN_MODULE) // -m
.assertNormalExit(out -> {
out.shouldMatch(".class.load. com.greetings.Main source:.*com.greetings.jar")
- .shouldMatch(".class.load. org.astro.World source:.*org.astro.jar");
+ .shouldMatch(".class.load. org.astro.World source:.*org.astro.jar")
+ .shouldContain("--module-path = " + moduleDir2.toString());
});
// create an archive with modular jar files in both -cp and --module-path
String jars = subJar.toString() + System.getProperty("path.separator") +
mainJar.toString();
@@ -141,28 +143,30 @@
// run with archive with the main class name specified before
// the module name with the -m option. Since the -m option was specified
// during dump time, the classes in the jar files after the -cp won't be
// archived. Therefore, the classes won't be loaded from the archive but
// will be loaded from the jar files.
- TestCommon.run("-Xlog:class+load=trace",
+ TestCommon.run("-Xlog:cds,class+load=trace",
"-cp", jars,
"--module-path", moduleDir.toString(),
MAIN_CLASS, "-m", MAIN_MODULE)
.assertNormalExit(out -> {
out.shouldMatch(".class.load. com.greetings.Main source:.*com.greetings.jar")
- .shouldMatch(".class.load. org.astro.World source:.*org.astro.jar");
+ .shouldMatch(".class.load. org.astro.World source:.*org.astro.jar")
+ .shouldContain("--module-path = " + moduleDir.toString());
});
// similar to the above case but without the main class name. The classes
// should be loaded from the archive.
- TestCommon.run("-Xlog:class+load=trace",
+ TestCommon.run("-Xlog:cds,class+load=trace",
"-cp", jars,
"--module-path", moduleDir.toString(),
"-m", MAIN_MODULE)
.assertNormalExit(
"[class,load] com.greetings.Main source: shared objects file",
- "[class,load] org.astro.World source: shared objects file");
+ "[class,load] org.astro.World source: shared objects file",
+ "--module-path = " + moduleDir.toString());
// create an archive with two modular jars in the --module-path
output = TestCommon.createArchive(
null, appClasses,
"--module-path", jars,
@@ -171,17 +175,31 @@
// run with the above archive but with the modular jar containing the
// org.astro module in a different location.
// The org.astro.World class should be loaded from the jar.
// The Main class should still be loaded from the archive.
- jars = destJar.toString() + System.getProperty("path.separator") +
+ final String mjars = destJar.toString() + System.getProperty("path.separator") +
mainJar.toString();
TestCommon.runWithModules(prefix,
null, // --upgrade-module-path
- jars, // --module-path
+ mjars, // --module-path
MAIN_MODULE) // -m
.assertNormalExit(out -> {
out.shouldContain("[class,load] com.greetings.Main source: shared objects file")
- .shouldMatch(".class.load. org.astro.World source:.*org.astro.jar");
+ .shouldMatch(".class.load. org.astro.World source:.*org.astro.jar")
+ .shouldContain("--module-path = " + mjars);
});
+ // run with CDS off, '--module-path = <path>' should not be printed out on output
+ TestCommon.run("-Xshare:off",
+ "-Xlog:cds,class+load=trace",
+ "-cp", mjars,
+ "--module-path", mjars,
+ "-m",
+ MAIN_MODULE)
+ .assertNormalExit(out -> {
+ out.shouldMatch(".class,load. com.greetings.Main source: .*com.greetings.jar")
+ .shouldMatch(".class.load. org.astro.World source:.*org.astro.jar")
+ .shouldNotContain("--module-path = " + mjars);
+ });
+
}
}
< prev index next >