langtools/test/tools/javac/modules/RepeatedUsesAndProvidesTest.java
changeset 36778 e04318f39f92
parent 36526 3b41f1c69604
child 37758 3ecf9b414e05
equal deleted inserted replaced
36777:28d33fb9097f 36778:e04318f39f92
    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 }