106 .reference("p6.safe.Lib", "org.safe.Lib", "unsafe"), 107 new ModuleMetaData("unsafe") 108 .requires("jdk.unsupported") 109 .reference("org.indirect.UnsafeRef", "java.lang.Object", "java.base") 110 .reference("org.safe.Lib", "java.io.PrintStream", "java.base") 111 .reference("org.safe.Lib", "java.lang.Class", "java.base") 112 .reference("org.safe.Lib", "java.lang.Object", "java.base") 113 .reference("org.safe.Lib", "java.lang.String", "java.base") 114 .reference("org.safe.Lib", "java.lang.System", "java.base") 115 .reference("org.unsafe.UseUnsafe", "java.lang.Object", "java.base") 116 .jdkInternal("org.unsafe.UseUnsafe", "sun.misc.Unsafe", "java.base") 117 ) 118 }, 119 }; 120 } 121 122 @Test(dataProvider = "modules") 123 public void testModulePath(String name, List<ModuleMetaData> data) throws IOException { 124 Set<String> roots = Set.of("m6", "unsafe"); 125 126 String cmd1 = String.format("jdeps -modulepath %s -addmods %s -m %s%n", MODS_DIR, 127 roots.stream().collect(Collectors.joining(",")), name); 128 try (JdepsUtil.Command jdeps = JdepsUtil.newCommand(cmd1)) { 129 jdeps.verbose("-verbose:class") 130 .appModulePath(MODS_DIR.toString()) 131 .addmods(roots) 132 .addmods(Set.of(name)); 133 134 runJdeps(jdeps, data); 135 } 136 // run automatic modules 137 roots = Set.of("ALL-MODULE-PATH", "jdk.unsupported"); 138 139 String cmd2 = String.format("jdeps -modulepath %s -addmods %s -m %s%n", LIBS_DIR, 140 roots.stream().collect(Collectors.joining(",")), name); 141 142 try (JdepsUtil.Command jdeps = JdepsUtil.newCommand(cmd2)) { 143 jdeps.verbose("-verbose:class") 144 .appModulePath(LIBS_DIR.toString()) 145 .addmods(roots) 146 .addmods(Set.of(name)); 147 148 runJdeps(jdeps, data); 149 } 150 } 151 152 @DataProvider(name = "jars") 153 public Object[][] expected2() { 154 return new Object[][]{ 155 { "m7", List.of(new ModuleMetaData("m7.jar") 156 .requires("m6.jar") 157 .requires("unsafe.jar") 158 .reference("p7.Main", "java.lang.Object", "java.base") 159 .reference("p7.Main", "java.lang.String", "java.base") | 106 .reference("p6.safe.Lib", "org.safe.Lib", "unsafe"), 107 new ModuleMetaData("unsafe") 108 .requires("jdk.unsupported") 109 .reference("org.indirect.UnsafeRef", "java.lang.Object", "java.base") 110 .reference("org.safe.Lib", "java.io.PrintStream", "java.base") 111 .reference("org.safe.Lib", "java.lang.Class", "java.base") 112 .reference("org.safe.Lib", "java.lang.Object", "java.base") 113 .reference("org.safe.Lib", "java.lang.String", "java.base") 114 .reference("org.safe.Lib", "java.lang.System", "java.base") 115 .reference("org.unsafe.UseUnsafe", "java.lang.Object", "java.base") 116 .jdkInternal("org.unsafe.UseUnsafe", "sun.misc.Unsafe", "java.base") 117 ) 118 }, 119 }; 120 } 121 122 @Test(dataProvider = "modules") 123 public void testModulePath(String name, List<ModuleMetaData> data) throws IOException { 124 Set<String> roots = Set.of("m6", "unsafe"); 125 126 String cmd1 = String.format("jdeps --module-path %s --add-modules %s -m %s%n", MODS_DIR, 127 roots.stream().collect(Collectors.joining(",")), name); 128 try (JdepsUtil.Command jdeps = JdepsUtil.newCommand(cmd1)) { 129 jdeps.verbose("-verbose:class") 130 .appModulePath(MODS_DIR.toString()) 131 .addmods(roots) 132 .addmods(Set.of(name)); 133 134 runJdeps(jdeps, data); 135 } 136 // run automatic modules 137 roots = Set.of("ALL-MODULE-PATH", "jdk.unsupported"); 138 139 String cmd2 = String.format("jdeps --module-path %s --add-modules %s -m %s%n", LIBS_DIR, 140 roots.stream().collect(Collectors.joining(",")), name); 141 142 try (JdepsUtil.Command jdeps = JdepsUtil.newCommand(cmd2)) { 143 jdeps.verbose("-verbose:class") 144 .appModulePath(LIBS_DIR.toString()) 145 .addmods(roots) 146 .addmods(Set.of(name)); 147 148 runJdeps(jdeps, data); 149 } 150 } 151 152 @DataProvider(name = "jars") 153 public Object[][] expected2() { 154 return new Object[][]{ 155 { "m7", List.of(new ModuleMetaData("m7.jar") 156 .requires("m6.jar") 157 .requires("unsafe.jar") 158 .reference("p7.Main", "java.lang.Object", "java.base") 159 .reference("p7.Main", "java.lang.String", "java.base") |