36 import java.nio.file.Path; |
36 import java.nio.file.Path; |
37 |
37 |
38 import toolbox.JarTask; |
38 import toolbox.JarTask; |
39 import toolbox.JavacTask; |
39 import toolbox.JavacTask; |
40 import toolbox.Task; |
40 import toolbox.Task; |
41 import toolbox.ToolBox; |
|
42 |
41 |
43 public class ModuleFinderTest extends ModuleTestBase { |
42 public class ModuleFinderTest extends ModuleTestBase { |
44 |
43 |
45 public static void main(String... args) throws Exception { |
44 public static void main(String... args) throws Exception { |
46 ModuleFinderTest t = new ModuleFinderTest(); |
45 ModuleFinderTest t = new ModuleFinderTest(); |
48 } |
47 } |
49 |
48 |
50 @Test |
49 @Test |
51 public void testDuplicateModulesOnPath(Path base) throws Exception { |
50 public void testDuplicateModulesOnPath(Path base) throws Exception { |
52 Path src = base.resolve("src"); |
51 Path src = base.resolve("src"); |
53 tb.writeJavaFiles(src, "module m1 { }"); |
52 tb.writeJavaFiles(src, "module m1x { }"); |
54 |
53 |
55 Path classes = base.resolve("classes"); |
54 Path classes = base.resolve("classes"); |
56 Files.createDirectories(classes); |
55 Files.createDirectories(classes); |
57 Path modules = base.resolve("modules"); |
56 Path modules = base.resolve("modules"); |
58 Files.createDirectories(modules); |
57 Files.createDirectories(modules); |
61 .outdir(classes) |
60 .outdir(classes) |
62 .files(findJavaFiles(src)) |
61 .files(findJavaFiles(src)) |
63 .run() |
62 .run() |
64 .writeAll(); |
63 .writeAll(); |
65 |
64 |
66 new JarTask(tb, modules.resolve("m1-1.jar")) |
65 new JarTask(tb, modules.resolve("m1x-1.jar")) |
67 .baseDir(classes) |
66 .baseDir(classes) |
68 .files(".") |
67 .files(".") |
69 .run(); |
68 .run(); |
70 |
69 |
71 new JarTask(tb, modules.resolve("m1-2.jar")) |
70 new JarTask(tb, modules.resolve("m1x-2.jar")) |
72 .baseDir(classes) |
71 .baseDir(classes) |
73 .files(".") |
72 .files(".") |
74 .run(); |
73 .run(); |
75 |
74 |
76 Path src2 = base.resolve("src2"); |
75 Path src2 = base.resolve("src2"); |
77 tb.writeJavaFiles(src2, "module m2 { requires m1; }"); |
76 tb.writeJavaFiles(src2, "module m2x { requires m1x; }"); |
78 |
77 |
79 |
78 |
80 String log = new JavacTask(tb, Task.Mode.CMDLINE) |
79 String log = new JavacTask(tb, Task.Mode.CMDLINE) |
81 .options("-XDrawDiagnostics", "--module-path", modules.toString()) |
80 .options("-XDrawDiagnostics", "--module-path", modules.toString()) |
82 .outdir(classes) |
81 .outdir(classes) |
83 .files(findJavaFiles(src2)) |
82 .files(findJavaFiles(src2)) |
84 .run(Task.Expect.FAIL) |
83 .run(Task.Expect.FAIL) |
85 .writeAll() |
84 .writeAll() |
86 .getOutput(Task.OutputKind.DIRECT); |
85 .getOutput(Task.OutputKind.DIRECT); |
87 |
86 |
88 if (!log.contains("- compiler.err.duplicate.module.on.path: (compiler.misc.locn.module_path), m1")) |
87 if (!log.contains("- compiler.err.duplicate.module.on.path: (compiler.misc.locn.module_path), m1x")) |
89 throw new Exception("expected output not found"); |
88 throw new Exception("expected output not found"); |
90 } |
89 } |
91 } |
90 } |