< prev index next >
test/tools/jlink/plugins/SystemModuleDescriptors/UserModuleTest.java
Print this page
*** 62,72 ****
private static final Path IMAGE = Paths.get("image");
private static final String MAIN_MID = "m1/p1.Main";
// the names of the modules in this test
! private static String[] modules = new String[] {"m1", "m2", "m3", "m4"};
private static boolean hasJmods() {
if (!Files.exists(Paths.get(JAVA_HOME, "jmods"))) {
System.err.println("Test skipped. NO jmods directory");
--- 62,72 ----
private static final Path IMAGE = Paths.get("image");
private static final String MAIN_MID = "m1/p1.Main";
// the names of the modules in this test
! private static String[] modules = new String[] {"m1", "m2", "m3", "m4", "m5"};
private static boolean hasJmods() {
if (!Files.exists(Paths.get(JAVA_HOME, "jmods"))) {
System.err.println("Test skipped. NO jmods directory");
*** 158,167 ****
--- 158,211 ----
.outputTo(System.out)
.errorTo(System.out)
.getExitValue() == 0);
}
+ @Test
+ public void testRequiresStatic() throws Throwable {
+ if (!hasJmods()) return;
+
+ Path dir = Paths.get("requiresStatic");
+ createImage(dir, "m5");
+ Path java = dir.resolve("bin").resolve("java");
+ assertTrue(executeProcess(java.toString(), "-m", "m5/p5.Main")
+ .outputTo(System.out)
+ .errorTo(System.out)
+ .getExitValue() == 0);
+
+ // run with m3 present
+ assertTrue(executeProcess(java.toString(),
+ "--module-path", MODS_DIR.toString(),
+ "--add-modules", "m3",
+ "-m", "m5/p5.Main")
+ .outputTo(System.out)
+ .errorTo(System.out)
+ .getExitValue() == 0);
+ }
+
+ @Test
+ public void testRequiresStatic2() throws Throwable {
+ if (!hasJmods()) return;
+
+ Path dir = Paths.get("requiresStatic2");
+ createImage(dir, "m3", "m5");
+
+ Path java = dir.resolve("bin").resolve("java");
+ assertTrue(executeProcess(java.toString(), "-m", "m5/p5.Main")
+ .outputTo(System.out)
+ .errorTo(System.out)
+ .getExitValue() == 0);
+
+ // boot layer with m3 and m5
+ assertTrue(executeProcess(java.toString(),
+ "--add-modules", "m3",
+ "-m", "m5/p5.Main")
+ .outputTo(System.out)
+ .errorTo(System.out)
+ .getExitValue() == 0);
+ }
+
private void createJmods(String... modules) throws IOException {
// use the same target platform as in java.base
ModuleDescriptor md = Layer.boot().findModule("java.base").get()
.getDescriptor();
String osName = md.osName().get();
< prev index next >