60 Path sp = base.resolve("src"); |
60 Path sp = base.resolve("src"); |
61 Path msp = base.resolve("srcmodules"); |
61 Path msp = base.resolve("srcmodules"); |
62 |
62 |
63 String log = new JavacTask(tb, Task.Mode.CMDLINE) |
63 String log = new JavacTask(tb, Task.Mode.CMDLINE) |
64 .options("-XDrawDiagnostics", |
64 .options("-XDrawDiagnostics", |
65 "-sourcepath", sp.toString().replace('/', File.separatorChar), |
65 "--source-path", sp.toString().replace('/', File.separatorChar), |
66 "-modulesourcepath", msp.toString().replace('/', File.separatorChar), |
66 "--module-source-path", msp.toString().replace('/', File.separatorChar), |
67 "dummyClass") |
67 "dummyClass") |
68 .run(Task.Expect.FAIL) |
68 .run(Task.Expect.FAIL) |
69 .writeAll() |
69 .writeAll() |
70 .getOutput(Task.OutputKind.DIRECT); |
70 .getOutput(Task.OutputKind.DIRECT); |
71 |
71 |
72 if (!log.contains("cannot specify both -sourcepath and -modulesourcepath")) |
72 if (!log.contains("cannot specify both --source-path and --module-source-path")) |
73 throw new Exception("expected diagnostic not found"); |
73 throw new Exception("expected diagnostic not found"); |
74 } |
74 } |
75 |
75 |
76 @Test |
76 @Test |
77 public void testUnnormalizedPath1(Path base) throws Exception { |
77 public void testUnnormalizedPath1(Path base) throws Exception { |
81 Path modules = base.resolve("modules"); |
81 Path modules = base.resolve("modules"); |
82 Files.createDirectories(modules); |
82 Files.createDirectories(modules); |
83 |
83 |
84 new JavacTask(tb, Task.Mode.CMDLINE) |
84 new JavacTask(tb, Task.Mode.CMDLINE) |
85 .options("-XDrawDiagnostics", |
85 .options("-XDrawDiagnostics", |
86 "-modulesourcepath", src.toString()) |
86 "--module-source-path", src.toString()) |
87 .outdir(modules) |
87 .outdir(modules) |
88 .files(prefixAll(findJavaFiles(src), Paths.get("./"))) |
88 .files(prefixAll(findJavaFiles(src), Paths.get("./"))) |
89 .run() |
89 .run() |
90 .writeAll(); |
90 .writeAll(); |
91 } |
91 } |
98 Path modules = base.resolve("modules"); |
98 Path modules = base.resolve("modules"); |
99 Files.createDirectories(modules); |
99 Files.createDirectories(modules); |
100 |
100 |
101 new JavacTask(tb, Task.Mode.CMDLINE) |
101 new JavacTask(tb, Task.Mode.CMDLINE) |
102 .options("-XDrawDiagnostics", |
102 .options("-XDrawDiagnostics", |
103 "-modulesourcepath", "./" + src) |
103 "--module-source-path", "./" + src) |
104 .outdir(modules) |
104 .outdir(modules) |
105 .files(findJavaFiles(src)) |
105 .files(findJavaFiles(src)) |
106 .run() |
106 .run() |
107 .writeAll(); |
107 .writeAll(); |
108 } |
108 } |
121 final Path modules = base.resolve("modules"); |
121 final Path modules = base.resolve("modules"); |
122 tb.createDirectories(modules); |
122 tb.createDirectories(modules); |
123 |
123 |
124 new JavacTask(tb, Task.Mode.CMDLINE) |
124 new JavacTask(tb, Task.Mode.CMDLINE) |
125 .options("-XDrawDiagnostics", |
125 .options("-XDrawDiagnostics", |
126 "-modulesourcepath", base + "/{src1,src2/inner_dir}") |
126 "--module-source-path", base + "/{src1,src2/inner_dir}") |
127 .files(base.resolve("src1/m0/pkg0/A.java"), base.resolve("src2/inner_dir/m1/pkg1/A.java")) |
127 .files(base.resolve("src1/m0/pkg0/A.java"), base.resolve("src2/inner_dir/m1/pkg1/A.java")) |
128 .outdir(modules) |
128 .outdir(modules) |
129 .run() |
129 .run() |
130 .writeAll(); |
130 .writeAll(); |
131 |
131 |
152 "{}*}" |
152 "{}*}" |
153 ); |
153 ); |
154 for (String sourcepath : sourcePaths) { |
154 for (String sourcepath : sourcePaths) { |
155 String log = new JavacTask(tb, Task.Mode.CMDLINE) |
155 String log = new JavacTask(tb, Task.Mode.CMDLINE) |
156 .options("-XDrawDiagnostics", |
156 .options("-XDrawDiagnostics", |
157 "-modulesourcepath", sourcepath.replace('/', File.separatorChar)) |
157 "--module-source-path", sourcepath.replace('/', File.separatorChar)) |
158 .run(Task.Expect.FAIL) |
158 .run(Task.Expect.FAIL) |
159 .writeAll() |
159 .writeAll() |
160 .getOutput(Task.OutputKind.DIRECT); |
160 .getOutput(Task.OutputKind.DIRECT); |
161 |
161 |
162 if (!log.contains("- compiler.err.illegal.argument.for.option: -modulesourcepath, mismatched braces")) |
162 if (!log.contains("- compiler.err.illegal.argument.for.option: --module-source-path, mismatched braces")) |
163 throw new Exception("expected output for path [" + sourcepath + "] not found"); |
163 throw new Exception("expected output for path [" + sourcepath + "] not found"); |
164 } |
164 } |
165 } |
165 } |
166 |
166 |
167 @Test |
167 @Test |
180 final Path modules = base.resolve("modules"); |
180 final Path modules = base.resolve("modules"); |
181 tb.createDirectories(modules); |
181 tb.createDirectories(modules); |
182 |
182 |
183 new JavacTask(tb, Task.Mode.CMDLINE) |
183 new JavacTask(tb, Task.Mode.CMDLINE) |
184 .options("-XDrawDiagnostics", |
184 .options("-XDrawDiagnostics", |
185 "-modulesourcepath", |
185 "--module-source-path", |
186 base + "/{src/{{src1,src2,src3},{srcB,srcC}/{src1,src2/srcX{X,Y}/}},.}" |
186 base + "/{src/{{src1,src2,src3},{srcB,srcC}/{src1,src2/srcX{X,Y}/}},.}" |
187 .replace('/', File.separatorChar)) |
187 .replace('/', File.separatorChar)) |
188 .files(findJavaFiles(base.resolve(modulePaths[modulePaths.length - 1]))) |
188 .files(findJavaFiles(base.resolve(modulePaths[modulePaths.length - 1]))) |
189 .outdir(modules) |
189 .outdir(modules) |
190 .run() |
190 .run() |
205 final Path modules = base.resolve("modules"); |
205 final Path modules = base.resolve("modules"); |
206 tb.createDirectories(modules); |
206 tb.createDirectories(modules); |
207 |
207 |
208 new JavacTask(tb, Task.Mode.CMDLINE) |
208 new JavacTask(tb, Task.Mode.CMDLINE) |
209 .options("-XDrawDiagnostics", |
209 .options("-XDrawDiagnostics", |
210 "-modulesourcepath", base + "/{dummy.txt,src}") |
210 "--module-source-path", base + "/{dummy.txt,src}") |
211 .files(src.resolve("kettle$/electric/Heater.java")) |
211 .files(src.resolve("kettle$/electric/Heater.java")) |
212 .outdir(modules) |
212 .outdir(modules) |
213 .run() |
213 .run() |
214 .writeAll(); |
214 .writeAll(); |
215 |
215 |
225 final Path modules = base.resolve("modules"); |
225 final Path modules = base.resolve("modules"); |
226 tb.createDirectories(modules); |
226 tb.createDirectories(modules); |
227 |
227 |
228 new JavacTask(tb, Task.Mode.CMDLINE) |
228 new JavacTask(tb, Task.Mode.CMDLINE) |
229 .options("-XDrawDiagnostics", |
229 .options("-XDrawDiagnostics", |
230 "-modulesourcepath", base + "/{src}") |
230 "--module-source-path", base + "/{src}") |
231 .files(src.resolve("kettle$/electric/Heater.java")) |
231 .files(src.resolve("kettle$/electric/Heater.java")) |
232 .outdir(modules) |
232 .outdir(modules) |
233 .run() |
233 .run() |
234 .writeAll(); |
234 .writeAll(); |
235 |
235 |
244 final Path modules = base.resolve("modules"); |
244 final Path modules = base.resolve("modules"); |
245 tb.createDirectories(modules); |
245 tb.createDirectories(modules); |
246 |
246 |
247 new JavacTask(tb, Task.Mode.CMDLINE) |
247 new JavacTask(tb, Task.Mode.CMDLINE) |
248 .options("-XDrawDiagnostics", |
248 .options("-XDrawDiagnostics", |
249 "-modulesourcepath", base + "/{}") |
249 "--module-source-path", base + "/{}") |
250 .files(base.resolve("kettle$/electric/Heater.java")) |
250 .files(base.resolve("kettle$/electric/Heater.java")) |
251 .outdir(modules) |
251 .outdir(modules) |
252 .run() |
252 .run() |
253 .writeAll(); |
253 .writeAll(); |
254 |
254 |
265 final Path modules = src.resolve("modules"); |
265 final Path modules = src.resolve("modules"); |
266 tb.createDirectories(modules); |
266 tb.createDirectories(modules); |
267 |
267 |
268 new JavacTask(tb, Task.Mode.CMDLINE) |
268 new JavacTask(tb, Task.Mode.CMDLINE) |
269 .options("-XDrawDiagnostics", |
269 .options("-XDrawDiagnostics", |
270 "-modulesourcepath", "{" + src + "," + src + "/car}") |
270 "--module-source-path", "{" + src + "," + src + "/car}") |
271 .files(findJavaFiles(src)) |
271 .files(findJavaFiles(src)) |
272 .outdir(modules) |
272 .outdir(modules) |
273 .run() |
273 .run() |
274 .writeAll(); |
274 .writeAll(); |
275 checkFiles(modules.resolve("car/light/Headlight.class")); |
275 checkFiles(modules.resolve("car/light/Headlight.class")); |
284 final Path modules = base.resolve("modules"); |
284 final Path modules = base.resolve("modules"); |
285 tb.createDirectories(modules); |
285 tb.createDirectories(modules); |
286 |
286 |
287 new JavacTask(tb, Task.Mode.CMDLINE) |
287 new JavacTask(tb, Task.Mode.CMDLINE) |
288 .options("-XDrawDiagnostics", |
288 .options("-XDrawDiagnostics", |
289 "-modulesourcepath", base + "/src/./../src") |
289 "--module-source-path", base + "/src/./../src") |
290 .files(src.resolve("kettle/electric/Heater.java")) |
290 .files(src.resolve("kettle/electric/Heater.java")) |
291 .outdir(modules) |
291 .outdir(modules) |
292 .run() |
292 .run() |
293 .writeAll(); |
293 .writeAll(); |
294 checkFiles(modules.resolve("kettle/electric/Heater.class")); |
294 checkFiles(modules.resolve("kettle/electric/Heater.class")); |
303 final Path modules = base.resolve("modules"); |
303 final Path modules = base.resolve("modules"); |
304 tb.createDirectories(modules); |
304 tb.createDirectories(modules); |
305 |
305 |
306 new JavacTask(tb, Task.Mode.CMDLINE) |
306 new JavacTask(tb, Task.Mode.CMDLINE) |
307 .options("-XDrawDiagnostics", |
307 .options("-XDrawDiagnostics", |
308 "-modulesourcepath", base + "/{src,src,src}") |
308 "--module-source-path", base + "/{src,src,src}") |
309 .files(src.resolve("m1/a/A.java")) |
309 .files(src.resolve("m1/a/A.java")) |
310 .outdir(modules) |
310 .outdir(modules) |
311 .run() |
311 .run() |
312 .writeAll(); |
312 .writeAll(); |
313 |
313 |
321 final Path modules = base.resolve("modules"); |
321 final Path modules = base.resolve("modules"); |
322 tb.createDirectories(modules); |
322 tb.createDirectories(modules); |
323 |
323 |
324 String log = new JavacTask(tb, Task.Mode.CMDLINE) |
324 String log = new JavacTask(tb, Task.Mode.CMDLINE) |
325 .options("-XDrawDiagnostics", |
325 .options("-XDrawDiagnostics", |
326 "-modulesourcepath", base + "/not_exist" + PATH_SEP + base + "/{not_exist,}") |
326 "--module-source-path", base + "/not_exist" + PATH_SEP + base + "/{not_exist,}") |
327 .files(base.resolve("m1/a/A.java")) |
327 .files(base.resolve("m1/a/A.java")) |
328 .outdir(modules) |
328 .outdir(modules) |
329 .run(Task.Expect.FAIL) |
329 .run(Task.Expect.FAIL) |
330 .writeAll() |
330 .writeAll() |
331 .getOutput(Task.OutputKind.DIRECT); |
331 .getOutput(Task.OutputKind.DIRECT); |
340 final Path modules = base.resolve("modules"); |
340 final Path modules = base.resolve("modules"); |
341 tb.createDirectories(modules); |
341 tb.createDirectories(modules); |
342 |
342 |
343 new JavacTask(tb, Task.Mode.CMDLINE) |
343 new JavacTask(tb, Task.Mode.CMDLINE) |
344 .options("-XDrawDiagnostics", |
344 .options("-XDrawDiagnostics", |
345 "-modulesourcepath", base + "{/not_exist,/}") |
345 "--module-source-path", base + "{/not_exist,/}") |
346 .files(base.resolve("m1/a/A.java")) |
346 .files(base.resolve("m1/a/A.java")) |
347 .outdir(modules) |
347 .outdir(modules) |
348 .run() |
348 .run() |
349 .writeAll(); |
349 .writeAll(); |
350 |
350 |
359 final Path modules = base.resolve("modules"); |
359 final Path modules = base.resolve("modules"); |
360 tb.createDirectories(modules); |
360 tb.createDirectories(modules); |
361 |
361 |
362 new JavacTask(tb, Task.Mode.CMDLINE) |
362 new JavacTask(tb, Task.Mode.CMDLINE) |
363 .options("-XDrawDiagnostics", |
363 .options("-XDrawDiagnostics", |
364 "-modulesourcepath", base + "/{,{,,,,src,,,}}") |
364 "--module-source-path", base + "/{,{,,,,src,,,}}") |
365 .files(src.resolve("m1/a/A.java")) |
365 .files(src.resolve("m1/a/A.java")) |
366 .outdir(modules) |
366 .outdir(modules) |
367 .run() |
367 .run() |
368 .writeAll(); |
368 .writeAll(); |
369 |
369 |
378 final Path modules = base.resolve("modules"); |
378 final Path modules = base.resolve("modules"); |
379 tb.createDirectories(modules); |
379 tb.createDirectories(modules); |
380 |
380 |
381 new JavacTask(tb, Task.Mode.CMDLINE) |
381 new JavacTask(tb, Task.Mode.CMDLINE) |
382 .options("-XDrawDiagnostics", |
382 .options("-XDrawDiagnostics", |
383 "-modulesourcepath", base + "/*/classes/") |
383 "--module-source-path", base + "/*/classes/") |
384 .files(base.resolve("kettle/classes/electric/Heater.java")) |
384 .files(base.resolve("kettle/classes/electric/Heater.java")) |
385 .outdir(modules) |
385 .outdir(modules) |
386 .run() |
386 .run() |
387 .writeAll(); |
387 .writeAll(); |
388 |
388 |
401 final Path modules = base.resolve("modules"); |
401 final Path modules = base.resolve("modules"); |
402 tb.createDirectories(modules); |
402 tb.createDirectories(modules); |
403 |
403 |
404 new JavacTask(tb, Task.Mode.CMDLINE) |
404 new JavacTask(tb, Task.Mode.CMDLINE) |
405 .options("-XDrawDiagnostics", |
405 .options("-XDrawDiagnostics", |
406 "-modulesourcepath", src + "{/*/gensrc/,/*/classes/}" + PATH_SEP |
406 "--module-source-path", src + "{/*/gensrc/,/*/classes/}" + PATH_SEP |
407 + src + "/*/special/classes") |
407 + src + "/*/special/classes") |
408 .files(findJavaFiles(src)) |
408 .files(findJavaFiles(src)) |
409 .outdir(modules) |
409 .outdir(modules) |
410 .run() |
410 .run() |
411 .writeAll(); |
411 .writeAll(); |
430 "src/module*/" |
430 "src/module*/" |
431 ); |
431 ); |
432 for (String sourcepath : sourcePaths) { |
432 for (String sourcepath : sourcePaths) { |
433 String log = new JavacTask(tb, Task.Mode.CMDLINE) |
433 String log = new JavacTask(tb, Task.Mode.CMDLINE) |
434 .options("-XDrawDiagnostics", |
434 .options("-XDrawDiagnostics", |
435 "-modulesourcepath", sourcepath.replace('/', File.separatorChar)) |
435 "--module-source-path", sourcepath.replace('/', File.separatorChar)) |
436 .run(Task.Expect.FAIL) |
436 .run(Task.Expect.FAIL) |
437 .writeAll() |
437 .writeAll() |
438 .getOutput(Task.OutputKind.DIRECT); |
438 .getOutput(Task.OutputKind.DIRECT); |
439 |
439 |
440 if (!log.contains("- compiler.err.illegal.argument.for.option: -modulesourcepath, illegal use of *")) |
440 if (!log.contains("- compiler.err.illegal.argument.for.option: --module-source-path, illegal use of *")) |
441 throw new Exception("expected output for path [" + sourcepath + "] not found"); |
441 throw new Exception("expected output for path [" + sourcepath + "] not found"); |
442 } |
442 } |
443 } |
443 } |
444 |
444 |
445 private void generateModules(Path base, String... paths) throws IOException { |
445 private void generateModules(Path base, String... paths) throws IOException { |