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"); |