equal
deleted
inserted
replaced
26 * @summary Javac doesn't report errors on duplicate uses or provides |
26 * @summary Javac doesn't report errors on duplicate uses or provides |
27 * @library /tools/lib |
27 * @library /tools/lib |
28 * @modules |
28 * @modules |
29 * jdk.compiler/com.sun.tools.javac.api |
29 * jdk.compiler/com.sun.tools.javac.api |
30 * jdk.compiler/com.sun.tools.javac.main |
30 * jdk.compiler/com.sun.tools.javac.main |
31 * jdk.jdeps/com.sun.tools.javap |
31 * @build toolbox.ToolBox toolbox.JavacTask ModuleTestBase |
32 * @build ToolBox ModuleTestBase |
|
33 * @run main RepeatedUsesAndProvidesTest |
32 * @run main RepeatedUsesAndProvidesTest |
34 */ |
33 */ |
35 |
34 |
36 import java.nio.file.Files; |
35 import java.nio.file.Files; |
37 import java.nio.file.Path; |
36 import java.nio.file.Path; |
|
37 |
|
38 import toolbox.JavacTask; |
|
39 import toolbox.Task; |
|
40 import toolbox.ToolBox; |
38 |
41 |
39 public class RepeatedUsesAndProvidesTest extends ModuleTestBase { |
42 public class RepeatedUsesAndProvidesTest extends ModuleTestBase { |
40 public static void main(String... args) throws Exception { |
43 public static void main(String... args) throws Exception { |
41 RepeatedUsesAndProvidesTest t = new RepeatedUsesAndProvidesTest(); |
44 RepeatedUsesAndProvidesTest t = new RepeatedUsesAndProvidesTest(); |
42 t.runTests(); |
45 t.runTests(); |
49 "module m { uses p1.C1; uses p1.C1; }", |
52 "module m { uses p1.C1; uses p1.C1; }", |
50 "package p1; public class C1 {}"); |
53 "package p1; public class C1 {}"); |
51 Path classes = base.resolve("classes"); |
54 Path classes = base.resolve("classes"); |
52 Files.createDirectories(classes); |
55 Files.createDirectories(classes); |
53 |
56 |
54 String log = tb.new JavacTask() |
57 String log = new JavacTask(tb) |
55 .options("-XDrawDiagnostics") |
58 .options("-XDrawDiagnostics") |
56 .outdir(classes) |
59 .outdir(classes) |
57 .files(findJavaFiles(src)) |
60 .files(findJavaFiles(src)) |
58 .run(ToolBox.Expect.FAIL) |
61 .run(Task.Expect.FAIL) |
59 .writeAll() |
62 .writeAll() |
60 .getOutput(ToolBox.OutputKind.DIRECT); |
63 .getOutput(Task.OutputKind.DIRECT); |
61 if (!log.contains("module-info.java:1:24: compiler.err.duplicate.uses: p1.C1")) |
64 if (!log.contains("module-info.java:1:24: compiler.err.duplicate.uses: p1.C1")) |
62 throw new Exception("expected output not found"); |
65 throw new Exception("expected output not found"); |
63 } |
66 } |
64 |
67 |
65 @Test |
68 @Test |
70 "package p1; public class C1 {}", |
73 "package p1; public class C1 {}", |
71 "package p2; public class C2 extends p1.C1 {}"); |
74 "package p2; public class C2 extends p1.C1 {}"); |
72 Path classes = base.resolve("classes"); |
75 Path classes = base.resolve("classes"); |
73 Files.createDirectories(classes); |
76 Files.createDirectories(classes); |
74 |
77 |
75 String log = tb.new JavacTask() |
78 String log = new JavacTask(tb) |
76 .options("-XDrawDiagnostics") |
79 .options("-XDrawDiagnostics") |
77 .outdir(classes) |
80 .outdir(classes) |
78 .files(findJavaFiles(src)) |
81 .files(findJavaFiles(src)) |
79 .run(ToolBox.Expect.FAIL) |
82 .run(Task.Expect.FAIL) |
80 .writeAll() |
83 .writeAll() |
81 .getOutput(ToolBox.OutputKind.DIRECT); |
84 .getOutput(Task.OutputKind.DIRECT); |
82 if (!log.contains("module-info.java:1:39: compiler.err.duplicate.provides")) |
85 if (!log.contains("module-info.java:1:39: compiler.err.duplicate.provides")) |
83 throw new Exception("expected output not found"); |
86 throw new Exception("expected output not found"); |
84 } |
87 } |
85 } |
88 } |