75 } |
75 } |
76 |
76 |
77 @Test |
77 @Test |
78 public void testUnnamed(Path base) throws Exception { |
78 public void testUnnamed(Path base) throws Exception { |
79 Path moduleSrc = base.resolve("module-src"); |
79 Path moduleSrc = base.resolve("module-src"); |
80 Path m1 = moduleSrc.resolve("m1"); |
80 Path m1 = moduleSrc.resolve("m1x"); |
81 |
81 |
82 tb.writeJavaFiles(m1, |
82 tb.writeJavaFiles(m1, |
83 "module m1 { exports m1; }", |
83 "module m1x { exports m1x; }", |
84 "package m1; public class M1 {}"); |
84 "package m1x; public class M1 {}"); |
85 |
85 |
86 Path m2 = moduleSrc.resolve("m2"); |
86 Path m2 = moduleSrc.resolve("m2x"); |
87 |
87 |
88 tb.writeJavaFiles(m2, |
88 tb.writeJavaFiles(m2, |
89 "module m2 { exports m2; }", |
89 "module m2x { exports m2x; }", |
90 "package m2; public class M2 {}"); |
90 "package m2x; public class M2 {}"); |
91 |
91 |
92 Path modulePath = base.resolve("module-path"); |
92 Path modulePath = base.resolve("module-path"); |
93 |
93 |
94 Files.createDirectories(modulePath); |
94 Files.createDirectories(modulePath); |
95 |
95 |
136 "-sourcepath", src.toString()), |
136 "-sourcepath", src.toString()), |
137 null, |
137 null, |
138 fm.getJavaFileObjects(src.resolve("test").resolve("Test2.java"))); |
138 fm.getJavaFileObjects(src.resolve("test").resolve("Test2.java"))); |
139 assertNotNull(task.getElements().getTypeElement("java.lang.String")); |
139 assertNotNull(task.getElements().getTypeElement("java.lang.String")); |
140 assertNotNull(task.getElements().getTypeElement("javax.tools.ToolProvider")); |
140 assertNotNull(task.getElements().getTypeElement("javax.tools.ToolProvider")); |
141 assertNull(task.getElements().getTypeElement("m1.M1")); |
141 assertNull(task.getElements().getTypeElement("m1x.M1")); |
142 assertNull(task.getElements().getTypeElement("m2.M2")); |
142 assertNull(task.getElements().getTypeElement("m2x.M2")); |
143 assertNotNull(task.getElements().getTypeElement("cp.CP")); |
143 assertNotNull(task.getElements().getTypeElement("cp.CP")); |
144 assertNotNull(task.getElements().getTypeElement("test.Test1")); |
144 assertNotNull(task.getElements().getTypeElement("test.Test1")); |
145 assertNotNull(task.getElements().getTypeElement("test.Test2")); |
145 assertNotNull(task.getElements().getTypeElement("test.Test2")); |
146 assertNotNull(task.getElements().getModuleElement("java.base")); |
146 assertNotNull(task.getElements().getModuleElement("java.base")); |
147 assertNotNull(task.getElements().getModuleElement("java.compiler")); |
147 assertNotNull(task.getElements().getModuleElement("java.compiler")); |
148 assertNull(task.getElements().getModuleElement("m1")); |
148 assertNull(task.getElements().getModuleElement("m1x")); |
149 assertNull(task.getElements().getModuleElement("m2")); |
149 assertNull(task.getElements().getModuleElement("m2x")); |
150 } |
150 } |
151 } |
151 } |
152 |
152 |
153 @Test |
153 @Test |
154 public void testSingleNamed(Path base) throws Exception { |
154 public void testSingleNamed(Path base) throws Exception { |
155 Path moduleSrc = base.resolve("module-src"); |
155 Path moduleSrc = base.resolve("module-src"); |
156 Path m1 = moduleSrc.resolve("m1"); |
156 Path m1 = moduleSrc.resolve("m1x"); |
157 |
157 |
158 tb.writeJavaFiles(m1, |
158 tb.writeJavaFiles(m1, |
159 "module m1 { exports m1; }", |
159 "module m1x { exports m1x; }", |
160 "package m1; public class M1 {}"); |
160 "package m1x; public class M1 {}"); |
161 |
161 |
162 Path m2 = moduleSrc.resolve("m2"); |
162 Path m2 = moduleSrc.resolve("m2x"); |
163 |
163 |
164 tb.writeJavaFiles(m2, |
164 tb.writeJavaFiles(m2, |
165 "module m2 { exports m2; }", |
165 "module m2x { exports m2x; }", |
166 "package m2; public class M2 {}"); |
166 "package m2x; public class M2 {}"); |
167 |
167 |
168 Path modulePath = base.resolve("module-path"); |
168 Path modulePath = base.resolve("module-path"); |
169 |
169 |
170 Files.createDirectories(modulePath); |
170 Files.createDirectories(modulePath); |
171 |
171 |
192 .writeAll(); |
192 .writeAll(); |
193 |
193 |
194 Path src = base.resolve("src"); |
194 Path src = base.resolve("src"); |
195 |
195 |
196 tb.writeJavaFiles(src, |
196 tb.writeJavaFiles(src, |
197 "module test { requires java.base; requires m1; } ", |
197 "module test { requires java.base; requires m1x; } ", |
198 "package test; public class Test {}"); |
198 "package test; public class Test {}"); |
199 |
199 |
200 Path out = base.resolve("out"); |
200 Path out = base.resolve("out"); |
201 |
201 |
202 Files.createDirectories(out); |
202 Files.createDirectories(out); |
212 "-sourcepath", src.toString()), |
212 "-sourcepath", src.toString()), |
213 null, |
213 null, |
214 fm.getJavaFileObjects(findJavaFiles(src))); |
214 fm.getJavaFileObjects(findJavaFiles(src))); |
215 assertNotNull(task.getElements().getTypeElement("java.lang.String")); |
215 assertNotNull(task.getElements().getTypeElement("java.lang.String")); |
216 assertNull(task.getElements().getTypeElement("javax.tools.ToolProvider")); |
216 assertNull(task.getElements().getTypeElement("javax.tools.ToolProvider")); |
217 assertNotNull(task.getElements().getTypeElement("m1.M1")); |
217 assertNotNull(task.getElements().getTypeElement("m1x.M1")); |
218 assertNull(task.getElements().getTypeElement("m2.M2")); |
218 assertNull(task.getElements().getTypeElement("m2x.M2")); |
219 assertNotNull(task.getElements().getTypeElement("test.Test")); |
219 assertNotNull(task.getElements().getTypeElement("test.Test")); |
220 assertNotNull(task.getElements().getModuleElement("java.base")); |
220 assertNotNull(task.getElements().getModuleElement("java.base")); |
221 assertNull(task.getElements().getModuleElement("java.compiler")); |
221 assertNull(task.getElements().getModuleElement("java.compiler")); |
222 assertNotNull(task.getElements().getModuleElement("m1")); |
222 assertNotNull(task.getElements().getModuleElement("m1x")); |
223 assertNull(task.getElements().getModuleElement("m2")); |
223 assertNull(task.getElements().getModuleElement("m2x")); |
224 assertNotNull(task.getElements().getModuleElement("test")); |
224 assertNotNull(task.getElements().getModuleElement("test")); |
225 } |
225 } |
226 } |
226 } |
227 |
227 |
228 @Test |
228 @Test |
229 public void testMultiModule(Path base) throws Exception { |
229 public void testMultiModule(Path base) throws Exception { |
230 Path modulePathSrc = base.resolve("module-path-src"); |
230 Path modulePathSrc = base.resolve("module-path-src"); |
231 Path m1 = modulePathSrc.resolve("m1"); |
231 Path m1 = modulePathSrc.resolve("m1x"); |
232 |
232 |
233 tb.writeJavaFiles(m1, |
233 tb.writeJavaFiles(m1, |
234 "module m1 { exports m1; }", |
234 "module m1x { exports m1x; }", |
235 "package m1; public class M1 {}"); |
235 "package m1x; public class M1 {}"); |
236 |
236 |
237 Path m2 = modulePathSrc.resolve("m2"); |
237 Path m2 = modulePathSrc.resolve("m2x"); |
238 |
238 |
239 tb.writeJavaFiles(m2, |
239 tb.writeJavaFiles(m2, |
240 "module m2 { exports m2; }", |
240 "module m2x { exports m2x; }", |
241 "package m2; public class M2 {}"); |
241 "package m2x; public class M2 {}"); |
242 |
242 |
243 Path modulePath = base.resolve("module-path"); |
243 Path modulePath = base.resolve("module-path"); |
244 |
244 |
245 Files.createDirectories(modulePath); |
245 Files.createDirectories(modulePath); |
246 |
246 |
265 .files(findJavaFiles(cpSrc)) |
265 .files(findJavaFiles(cpSrc)) |
266 .run() |
266 .run() |
267 .writeAll(); |
267 .writeAll(); |
268 |
268 |
269 Path moduleSrc = base.resolve("module-src"); |
269 Path moduleSrc = base.resolve("module-src"); |
270 Path m3 = moduleSrc.resolve("m3"); |
270 Path m3 = moduleSrc.resolve("m3x"); |
271 |
271 |
272 tb.writeJavaFiles(m3, |
272 tb.writeJavaFiles(m3, |
273 "module m3 { requires m1; exports m3; }", |
273 "module m3x { requires m1x; exports m3x; }", |
274 "package m3; public class M3 { }"); |
274 "package m3x; public class M3 { }"); |
275 |
275 |
276 Path m4 = moduleSrc.resolve("m4"); |
276 Path m4 = moduleSrc.resolve("m4x"); |
277 |
277 |
278 tb.writeJavaFiles(m4, |
278 tb.writeJavaFiles(m4, |
279 "module m4 { exports m4; }", |
279 "module m4x { exports m4x; }", |
280 "package m4; public class M4 {}"); |
280 "package m4x; public class M4 {}"); |
281 |
281 |
282 Path out = base.resolve("out"); |
282 Path out = base.resolve("out"); |
283 |
283 |
284 Files.createDirectories(out); |
284 Files.createDirectories(out); |
285 |
285 |
295 "-d", out.toString()), |
295 "-d", out.toString()), |
296 null, |
296 null, |
297 fm.getJavaFileObjects(findJavaFiles(moduleSrc))); |
297 fm.getJavaFileObjects(findJavaFiles(moduleSrc))); |
298 assertNotNull(task.getElements().getTypeElement("java.lang.String")); |
298 assertNotNull(task.getElements().getTypeElement("java.lang.String")); |
299 assertNull(task.getElements().getTypeElement("javax.tools.ToolProvider")); |
299 assertNull(task.getElements().getTypeElement("javax.tools.ToolProvider")); |
300 assertNotNull(task.getElements().getTypeElement("m1.M1")); |
300 assertNotNull(task.getElements().getTypeElement("m1x.M1")); |
301 assertNull(task.getElements().getTypeElement("m2.M2")); |
301 assertNull(task.getElements().getTypeElement("m2x.M2")); |
302 assertNotNull(task.getElements().getTypeElement("m3.M3")); |
302 assertNotNull(task.getElements().getTypeElement("m3x.M3")); |
303 assertNotNull(task.getElements().getTypeElement("m4.M4")); |
303 assertNotNull(task.getElements().getTypeElement("m4x.M4")); |
304 assertNotNull(task.getElements().getModuleElement("java.base")); |
304 assertNotNull(task.getElements().getModuleElement("java.base")); |
305 assertNull(task.getElements().getModuleElement("java.compiler")); |
305 assertNull(task.getElements().getModuleElement("java.compiler")); |
306 assertNotNull(task.getElements().getModuleElement("m1")); |
306 assertNotNull(task.getElements().getModuleElement("m1x")); |
307 assertNull(task.getElements().getModuleElement("m2")); |
307 assertNull(task.getElements().getModuleElement("m2x")); |
308 assertNotNull(task.getElements().getModuleElement("m3")); |
308 assertNotNull(task.getElements().getModuleElement("m3x")); |
309 assertNotNull(task.getElements().getModuleElement("m4")); |
309 assertNotNull(task.getElements().getModuleElement("m4x")); |
310 } |
310 } |
311 } |
311 } |
312 |
312 |
313 @Test |
313 @Test |
314 public void testTooSoon(Path base) throws Exception { |
314 public void testTooSoon(Path base) throws Exception { |