test/langtools/tools/javac/modules/JavaBaseTest.java
changeset 48723 6cb86bf0b51e
parent 48427 b08405cc467a
child 50566 c0b896fc3f08
equal deleted inserted replaced
48722:02b7ea53c1a4 48723:6cb86bf0b51e
    21  * questions.
    21  * questions.
    22  */
    22  */
    23 
    23 
    24 /**
    24 /**
    25  * @test
    25  * @test
    26  * @bug 8193125
    26  * @bug 8193125 8196623
    27  * @summary test modifiers with java.base
    27  * @summary test modifiers with java.base
    28  * @library /tools/lib
    28  * @library /tools/lib
    29  * @modules
    29  * @modules
    30  *      jdk.compiler/com.sun.tools.javac.api
    30  *      jdk.compiler/com.sun.tools.javac.api
    31  *      jdk.compiler/com.sun.tools.javac.main
    31  *      jdk.compiler/com.sun.tools.javac.main
    64         List.of("static"),
    64         List.of("static"),
    65         List.of("transitive"),
    65         List.of("transitive"),
    66         List.of("static", "transitive")
    66         List.of("static", "transitive")
    67     );
    67     );
    68 
    68 
    69     final String specVersion = System.getProperty("java.specification.version");
    69     final List<String> targets = List.of("9", "10", "current");
    70     final List<String> targets = specVersion.equals("10")
       
    71             ? List.of("9", "10")
       
    72             : List.of("9", "10", specVersion);
       
    73 
    70 
    74     enum Mode { SOURCE, CLASS };
    71     enum Mode { SOURCE, CLASS };
    75 
    72 
    76     ToolBox tb = new ToolBox();
    73     ToolBox tb = new ToolBox();
    77     int testCount = 0;
    74     int testCount = 0;
   119         tb.writeJavaFiles(src,
   116         tb.writeJavaFiles(src,
   120                 "module m { requires " + String.join(" ", mods) + " java.base; }");
   117                 "module m { requires " + String.join(" ", mods) + " java.base; }");
   121         Path modules = Files.createDirectories(base.resolve("modules"));
   118         Path modules = Files.createDirectories(base.resolve("modules"));
   122         boolean expectOK = target.equals("9");
   119         boolean expectOK = target.equals("9");
   123 
   120 
   124         String log = new JavacTask(tb)
   121         JavacTask jct = new JavacTask(tb)
   125                 .outdir(modules)
   122             .outdir(modules);
   126                 .options("-XDrawDiagnostics", "--release", target)
   123 
   127                 .files(tb.findJavaFiles(src))
   124         if (target.equals("current"))
   128                 .run(expectOK ? Task.Expect.SUCCESS : Task.Expect.FAIL)
   125             jct.options("-XDrawDiagnostics");
   129                 .writeAll()
   126         else
   130                 .getOutput(Task.OutputKind.DIRECT);
   127             jct.options("-XDrawDiagnostics", "--release", target);
       
   128 
       
   129         String log = jct.files(tb.findJavaFiles(src))
       
   130             .run(expectOK ? Task.Expect.SUCCESS : Task.Expect.FAIL)
       
   131             .writeAll()
       
   132             .getOutput(Task.OutputKind.DIRECT);
   131 
   133 
   132         if (!expectOK) {
   134         if (!expectOK) {
   133             boolean foundErrorMessage = false;
   135             boolean foundErrorMessage = false;
   134             for (String mod : mods) {
   136             for (String mod : mods) {
   135                 String key = mod.equals("static")
   137                 String key = mod.equals("static")
   187         Path src1 = base.resolve("interim-src");
   189         Path src1 = base.resolve("interim-src");
   188         tb.writeJavaFiles(src1,
   190         tb.writeJavaFiles(src1,
   189                 "module m { requires java.base; }");
   191                 "module m { requires java.base; }");
   190         Path modules1 = Files.createDirectories(base.resolve("interim-modules"));
   192         Path modules1 = Files.createDirectories(base.resolve("interim-modules"));
   191 
   193 
   192         new JavacTask(tb)
   194         JavacTask jct = new JavacTask(tb)
   193                 .outdir(modules1)
   195             .outdir(modules1);
   194                 .options("--release", target)
   196 
   195                 .files(tb.findJavaFiles(src1))
   197         if (!target.equals("current")) {
   196                 .run(Task.Expect.SUCCESS)
   198             jct.options("--release", target);
   197                 .writeAll();
   199         }
       
   200 
       
   201         jct.files(tb.findJavaFiles(src1))
       
   202             .run(Task.Expect.SUCCESS);
   198 
   203 
   199         ClassFile cf1 = ClassFile.read(modules1.resolve("module-info.class"));
   204         ClassFile cf1 = ClassFile.read(modules1.resolve("module-info.class"));
   200 
   205 
   201         Map<String,Attribute> attrMap = new LinkedHashMap<>(cf1.attributes.map);
   206         Map<String,Attribute> attrMap = new LinkedHashMap<>(cf1.attributes.map);
   202         Module_attribute modAttr1 = (Module_attribute) attrMap.get("Module");
   207         Module_attribute modAttr1 = (Module_attribute) attrMap.get("Module");