langtools/test/tools/javac/modules/ReportNonExistentPackageTest.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 if module exports non-existent package
    26  * @summary javac doesn't report errors if module exports non-existent package
    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 ReportNonExistentPackageTest
    32  * @run main ReportNonExistentPackageTest
    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 ReportNonExistentPackageTest extends ModuleTestBase {
    42 public class ReportNonExistentPackageTest extends ModuleTestBase {
    40     public static void main(String... args) throws Exception {
    43     public static void main(String... args) throws Exception {
    41         ReportNonExistentPackageTest t = new ReportNonExistentPackageTest();
    44         ReportNonExistentPackageTest t = new ReportNonExistentPackageTest();
    42         t.runTests();
    45         t.runTests();
    47         Path src = base.resolve("src");
    50         Path src = base.resolve("src");
    48         tb.writeJavaFiles(src, "module m { exports p1; }");
    51         tb.writeJavaFiles(src, "module m { exports p1; }");
    49         Path classes = base.resolve("classes");
    52         Path classes = base.resolve("classes");
    50         Files.createDirectories(classes);
    53         Files.createDirectories(classes);
    51 
    54 
    52         String log = tb.new JavacTask()
    55         String log = new JavacTask(tb)
    53                 .options("-XDrawDiagnostics")
    56                 .options("-XDrawDiagnostics")
    54                 .outdir(classes)
    57                 .outdir(classes)
    55                 .files(findJavaFiles(src))
    58                 .files(findJavaFiles(src))
    56                 .run(ToolBox.Expect.FAIL)
    59                 .run(Task.Expect.FAIL)
    57                 .writeAll()
    60                 .writeAll()
    58                 .getOutput(ToolBox.OutputKind.DIRECT);
    61                 .getOutput(Task.OutputKind.DIRECT);
    59         if (!log.contains("module-info.java:1:20: compiler.err.package.empty.or.not.found: p1"))
    62         if (!log.contains("module-info.java:1:20: compiler.err.package.empty.or.not.found: p1"))
    60             throw new Exception("expected output not found");
    63             throw new Exception("expected output not found");
    61     }
    64     }
    62 
    65 
    63     @Test
    66     @Test
    67                 "module m { exports p1; }",
    70                 "module m { exports p1; }",
    68                 "package p1;");
    71                 "package p1;");
    69         Path classes = base.resolve("classes");
    72         Path classes = base.resolve("classes");
    70         Files.createDirectories(classes);
    73         Files.createDirectories(classes);
    71 
    74 
    72         String log = tb.new JavacTask()
    75         String log = new JavacTask(tb)
    73                 .options("-XDrawDiagnostics")
    76                 .options("-XDrawDiagnostics")
    74                 .outdir(classes)
    77                 .outdir(classes)
    75                 .files(findJavaFiles(src))
    78                 .files(findJavaFiles(src))
    76                 .run(ToolBox.Expect.FAIL)
    79                 .run(Task.Expect.FAIL)
    77                 .writeAll()
    80                 .writeAll()
    78                 .getOutput(ToolBox.OutputKind.DIRECT);
    81                 .getOutput(Task.OutputKind.DIRECT);
    79         if (!log.contains("module-info.java:1:20: compiler.err.package.empty.or.not.found: p1"))
    82         if (!log.contains("module-info.java:1:20: compiler.err.package.empty.or.not.found: p1"))
    80             throw new Exception("expected output not found");
    83             throw new Exception("expected output not found");
    81     }
    84     }
    82 
    85 
    83     @Test
    86     @Test
    88         Path C = p1.resolve("C.java");
    91         Path C = p1.resolve("C.java");
    89         tb.writeFile(C, "// comment");
    92         tb.writeFile(C, "// comment");
    90         Path classes = base.resolve("classes");
    93         Path classes = base.resolve("classes");
    91         Files.createDirectories(classes);
    94         Files.createDirectories(classes);
    92 
    95 
    93         String log = tb.new JavacTask()
    96         String log = new JavacTask(tb)
    94                 .options("-XDrawDiagnostics")
    97                 .options("-XDrawDiagnostics")
    95                 .outdir(classes)
    98                 .outdir(classes)
    96                 .files(findJavaFiles(src))
    99                 .files(findJavaFiles(src))
    97                 .run(ToolBox.Expect.FAIL)
   100                 .run(Task.Expect.FAIL)
    98                 .writeAll()
   101                 .writeAll()
    99                 .getOutput(ToolBox.OutputKind.DIRECT);
   102                 .getOutput(Task.OutputKind.DIRECT);
   100         if (!log.contains("module-info.java:1:20: compiler.err.package.empty.or.not.found: p1"))
   103         if (!log.contains("module-info.java:1:20: compiler.err.package.empty.or.not.found: p1"))
   101             throw new Exception("expected output not found");
   104             throw new Exception("expected output not found");
   102     }
   105     }
   103 }
   106 }