21 * questions. |
21 * questions. |
22 */ |
22 */ |
23 |
23 |
24 /** |
24 /** |
25 * @test |
25 * @test |
26 * @bug 8178152 |
26 * @bug 8178152 8187681 |
27 * @summary Verify unsupported modules and module options handling. |
27 * @summary Verify unsupported modules and module options handling. |
28 * @library /tools/lib |
28 * @library /tools/lib |
29 * @modules jdk.compiler/com.sun.tools.javac.api |
29 * @modules 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.compiler/com.sun.tools.javac.jvm |
31 * jdk.compiler/com.sun.tools.javac.jvm |
261 tb.createDirectories(classes); |
261 tb.createDirectories(classes); |
262 Path patch = base.resolve("patch"); |
262 Path patch = base.resolve("patch"); |
263 tb.createDirectories(patch); |
263 tb.createDirectories(patch); |
264 |
264 |
265 new JavacTask(tb) |
265 new JavacTask(tb) |
266 .options("-XDrawDiagnostics", |
266 .options("--patch-module", "java.base=" + patch) |
267 "--patch-module", "java.base=" + patch) |
267 .outdir(classes) |
268 .outdir(classes) |
268 .files(tb.findJavaFiles(src)) |
269 .files(tb.findJavaFiles(src)) |
269 .run(Expect.SUCCESS) |
270 .run(Expect.SUCCESS) |
270 .writeAll(); |
271 .writeAll() |
271 |
272 .getOutputLines(Task.OutputKind.DIRECT); |
272 new JavacTask(tb) |
273 |
273 .options("--patch-module", "java.base=" + patch, |
274 List<String> log; |
274 "--release", Target.DEFAULT.multiReleaseValue()) |
275 List<String> expected; |
275 .outdir(classes) |
276 |
276 .files(tb.findJavaFiles(src)) |
277 log = new JavacTask(tb) |
277 .run(Expect.SUCCESS) |
278 .options("-XDrawDiagnostics", |
278 .writeAll(); |
279 "--patch-module", "java.base=" + patch, |
|
280 "--release", Target.DEFAULT.multiReleaseValue()) |
|
281 .outdir(classes) |
|
282 .files(tb.findJavaFiles(src)) |
|
283 .run(Expect.FAIL) |
|
284 .writeAll() |
|
285 .getOutputLines(Task.OutputKind.DIRECT); |
|
286 |
|
287 expected = Arrays.asList( |
|
288 "- compiler.err.patch.module.with.release: java.base", |
|
289 "1 error" |
|
290 ); |
|
291 |
|
292 if (!expected.equals(log)) { |
|
293 throw new AssertionError("Unexpected output: " + log); |
|
294 } |
|
295 |
279 |
296 //OK to patch a non-system module: |
280 //OK to patch a non-system module: |
297 tb.createDirectories(classes); |
281 tb.createDirectories(classes); |
298 |
282 |
299 new JavacTask(tb) |
283 new JavacTask(tb) |