257 Result result = helper.generateDefaultImage(moduleName);
258 System.err.println(result.getMessage());
259 if (result.getExitCode() == 0) {
260 throw new AssertionError("Crash expected");
261 }
262 } finally {
263 deleteDirectory(jmod);
264 }
265 }
266
267 public void testDuplicateModule1() throws IOException {
268 String moduleName1 = "dupRes1Jmod1";
269 String moduleName2 = "dupRes1Jmod2";
270 List<String> classNames = Arrays.asList("java.A", "javax.B");
271 Path module1 = helper.generateModuleCompiledClasses(
272 helper.getJmodSrcDir(), helper.getJmodClassesDir(), moduleName1, classNames);
273 Path module2 = helper.generateModuleCompiledClasses(
274 helper.getJmodSrcDir(), helper.getJmodClassesDir(), moduleName2, classNames);
275
276 try (OutputStream out = Files.newOutputStream(module2.resolve("module-info.class"))) {
277 ModuleInfoWriter.write(ModuleDescriptor.module(moduleName1)
278 .requires("java.base").build(), out);
279 }
280
281 Path jmod1 = JImageGenerator.getJModTask()
282 .addClassPath(module1)
283 .jmod(helper.createNewJmodFile(moduleName1))
284 .create()
285 .assertSuccess();
286 Path jmod2 = JImageGenerator.getJModTask()
287 .addClassPath(module2)
288 .jmod(helper.createNewJmodFile(moduleName2))
289 .create()
290 .assertSuccess();
291 try {
292 helper.generateDefaultImage(moduleName1)
293 .assertFailure("Error: Two versions of module dupRes1Jmod1 found in");
294 } finally {
295 deleteDirectory(jmod1);
296 deleteDirectory(jmod2);
297 }
315 Files.move(jar, newJar);
316 try {
317 helper.generateDefaultImage(moduleName)
318 .assertFailure("Error: Two versions of module dupRes2Jmod found in");
319 } finally {
320 deleteDirectory(jmod);
321 deleteDirectory(newJar);
322 }
323 }
324
325 public void testDuplicateModule3() throws IOException {
326 String moduleName1 = "dupRes3Jar1";
327 String moduleName2 = "dupRes3Jar2";
328 List<String> classNames = Arrays.asList("java.A", "javax.B");
329 Path module1 = helper.generateModuleCompiledClasses(
330 helper.getJarSrcDir(), helper.getJarClassesDir(), moduleName1, classNames);
331 Path module2 = helper.generateModuleCompiledClasses(
332 helper.getJarSrcDir(), helper.getJarClassesDir(), moduleName2, classNames);
333
334 try (OutputStream out = Files.newOutputStream(module2.resolve("module-info.class"))) {
335 ModuleInfoWriter.write(ModuleDescriptor.module(moduleName1)
336 .requires("java.base").build(), out);
337 }
338
339 Path jar1 = JImageGenerator.createJarFile(helper.getJarDir().resolve(moduleName1 + ".jar"), module1);
340 Path jar2 = JImageGenerator.createJarFile(helper.getJarDir().resolve(moduleName2 + ".jar"), module2);
341 try {
342 helper.generateDefaultImage(moduleName1)
343 .assertFailure("Error: Two versions of module dupRes3Jar1 found in");
344 } finally {
345 deleteDirectory(jar1);
346 deleteDirectory(jar2);
347 }
348 }
349 }
|
257 Result result = helper.generateDefaultImage(moduleName);
258 System.err.println(result.getMessage());
259 if (result.getExitCode() == 0) {
260 throw new AssertionError("Crash expected");
261 }
262 } finally {
263 deleteDirectory(jmod);
264 }
265 }
266
267 public void testDuplicateModule1() throws IOException {
268 String moduleName1 = "dupRes1Jmod1";
269 String moduleName2 = "dupRes1Jmod2";
270 List<String> classNames = Arrays.asList("java.A", "javax.B");
271 Path module1 = helper.generateModuleCompiledClasses(
272 helper.getJmodSrcDir(), helper.getJmodClassesDir(), moduleName1, classNames);
273 Path module2 = helper.generateModuleCompiledClasses(
274 helper.getJmodSrcDir(), helper.getJmodClassesDir(), moduleName2, classNames);
275
276 try (OutputStream out = Files.newOutputStream(module2.resolve("module-info.class"))) {
277 ModuleInfoWriter.write(ModuleDescriptor.newModule(moduleName1)
278 .requires("java.base").build(), out);
279 }
280
281 Path jmod1 = JImageGenerator.getJModTask()
282 .addClassPath(module1)
283 .jmod(helper.createNewJmodFile(moduleName1))
284 .create()
285 .assertSuccess();
286 Path jmod2 = JImageGenerator.getJModTask()
287 .addClassPath(module2)
288 .jmod(helper.createNewJmodFile(moduleName2))
289 .create()
290 .assertSuccess();
291 try {
292 helper.generateDefaultImage(moduleName1)
293 .assertFailure("Error: Two versions of module dupRes1Jmod1 found in");
294 } finally {
295 deleteDirectory(jmod1);
296 deleteDirectory(jmod2);
297 }
315 Files.move(jar, newJar);
316 try {
317 helper.generateDefaultImage(moduleName)
318 .assertFailure("Error: Two versions of module dupRes2Jmod found in");
319 } finally {
320 deleteDirectory(jmod);
321 deleteDirectory(newJar);
322 }
323 }
324
325 public void testDuplicateModule3() throws IOException {
326 String moduleName1 = "dupRes3Jar1";
327 String moduleName2 = "dupRes3Jar2";
328 List<String> classNames = Arrays.asList("java.A", "javax.B");
329 Path module1 = helper.generateModuleCompiledClasses(
330 helper.getJarSrcDir(), helper.getJarClassesDir(), moduleName1, classNames);
331 Path module2 = helper.generateModuleCompiledClasses(
332 helper.getJarSrcDir(), helper.getJarClassesDir(), moduleName2, classNames);
333
334 try (OutputStream out = Files.newOutputStream(module2.resolve("module-info.class"))) {
335 ModuleInfoWriter.write(ModuleDescriptor.newModule(moduleName1)
336 .requires("java.base").build(), out);
337 }
338
339 Path jar1 = JImageGenerator.createJarFile(helper.getJarDir().resolve(moduleName1 + ".jar"), module1);
340 Path jar2 = JImageGenerator.createJarFile(helper.getJarDir().resolve(moduleName2 + ".jar"), module2);
341 try {
342 helper.generateDefaultImage(moduleName1)
343 .assertFailure("Error: Two versions of module dupRes3Jar1 found in");
344 } finally {
345 deleteDirectory(jar1);
346 deleteDirectory(jar2);
347 }
348 }
349 }
|