< prev index next >

langtools/test/tools/javac/modules/ProvidesTest.java

Print this page




  60         new JavacTask(tb)
  61                 .outdir(classes)
  62                 .files(findJavaFiles(src))
  63                 .run(Task.Expect.SUCCESS)
  64                 .writeAll();
  65     }
  66 
  67     @Test
  68     public void testMulti(Path base) throws Exception {
  69         Path src = base.resolve("src");
  70         tb.writeJavaFiles(src.resolve("m1"),
  71                 "module m1 { exports p1; }",
  72                 "package p1; public class C1 { }");
  73         tb.writeJavaFiles(src.resolve("m2"),
  74                 "module m2 { requires m1; provides p1.C1 with p2.C2; }",
  75                 "package p2; public class C2 extends p1.C1 { }");
  76         Path modules = base.resolve("modules");
  77         Files.createDirectories(modules);
  78 
  79         new JavacTask(tb)
  80                 .options("-modulesourcepath", src.toString())
  81                 .outdir(modules)
  82                 .files(findJavaFiles(src))
  83                 .run(Task.Expect.SUCCESS)
  84                 .writeAll();
  85 
  86     }
  87 
  88     @Test
  89     public void testMissingWith(Path base) throws Exception {
  90         Path src = base.resolve("src");
  91         tb.writeJavaFiles(src,
  92                 "module m { provides p.C; }",
  93                 "package p; public class C { }");
  94         Path classes = base.resolve("classes");
  95         Files.createDirectories(classes);
  96 
  97         String log = new JavacTask(tb)
  98                 .options("-XDrawDiagnostics")
  99                 .outdir(classes)
 100                 .files(findJavaFiles(src))


 143         List<String> expected = Arrays.asList(
 144                 "C.java:1:36: compiler.err.cant.resolve.location: kindname.class, Missing, , , (compiler.misc.location: kindname.package, p, null)",
 145                 "module-info.java:1:22: compiler.err.cant.resolve.location: kindname.class, Missing, , , (compiler.misc.location: kindname.package, p, null)",
 146                 "2 errors");
 147         if (!output.containsAll(expected)) {
 148             throw new Exception("Expected output not found");
 149         }
 150     }
 151 
 152     @Test
 153     public void testProvidesFromAnotherModule(Path base) throws Exception {
 154         Path modules = base.resolve("modules");
 155         tb.writeJavaFiles(modules.resolve("M"),
 156                 "module M { exports p; }",
 157                 "package p; public class Service { }");
 158         tb.writeJavaFiles(modules.resolve("L"),
 159                 "module L { requires M; provides p.Service with p.Service; }");
 160 
 161         List<String> output = new JavacTask(tb)
 162                 .options("-XDrawDiagnostics",
 163                         "-modulesourcepath", modules.toString())
 164                 .outdir(Files.createDirectories(base.resolve("classes")))
 165                 .files(findJavaFiles(modules))
 166                 .run(Task.Expect.FAIL)
 167                 .writeAll()
 168                 .getOutputLines(Task.OutputKind.DIRECT);
 169         List<String> expected = Arrays.asList(
 170                 "module-info.java:1:24: compiler.err.service.implementation.not.in.right.module: M",
 171                 "1 error");
 172         if (!output.containsAll(expected)) {
 173             throw new Exception("Expected output not found");
 174         }
 175 
 176     }
 177 
 178     @Test
 179     public void testServiceIsNotImplemented(Path base) throws Exception {
 180         Path src = base.resolve("src");
 181         tb.writeJavaFiles(src,
 182                 "module m { provides p.A with p.B; }",
 183                 "package p; public class A { }",




  60         new JavacTask(tb)
  61                 .outdir(classes)
  62                 .files(findJavaFiles(src))
  63                 .run(Task.Expect.SUCCESS)
  64                 .writeAll();
  65     }
  66 
  67     @Test
  68     public void testMulti(Path base) throws Exception {
  69         Path src = base.resolve("src");
  70         tb.writeJavaFiles(src.resolve("m1"),
  71                 "module m1 { exports p1; }",
  72                 "package p1; public class C1 { }");
  73         tb.writeJavaFiles(src.resolve("m2"),
  74                 "module m2 { requires m1; provides p1.C1 with p2.C2; }",
  75                 "package p2; public class C2 extends p1.C1 { }");
  76         Path modules = base.resolve("modules");
  77         Files.createDirectories(modules);
  78 
  79         new JavacTask(tb)
  80                 .options("--module-source-path", src.toString())
  81                 .outdir(modules)
  82                 .files(findJavaFiles(src))
  83                 .run(Task.Expect.SUCCESS)
  84                 .writeAll();
  85 
  86     }
  87 
  88     @Test
  89     public void testMissingWith(Path base) throws Exception {
  90         Path src = base.resolve("src");
  91         tb.writeJavaFiles(src,
  92                 "module m { provides p.C; }",
  93                 "package p; public class C { }");
  94         Path classes = base.resolve("classes");
  95         Files.createDirectories(classes);
  96 
  97         String log = new JavacTask(tb)
  98                 .options("-XDrawDiagnostics")
  99                 .outdir(classes)
 100                 .files(findJavaFiles(src))


 143         List<String> expected = Arrays.asList(
 144                 "C.java:1:36: compiler.err.cant.resolve.location: kindname.class, Missing, , , (compiler.misc.location: kindname.package, p, null)",
 145                 "module-info.java:1:22: compiler.err.cant.resolve.location: kindname.class, Missing, , , (compiler.misc.location: kindname.package, p, null)",
 146                 "2 errors");
 147         if (!output.containsAll(expected)) {
 148             throw new Exception("Expected output not found");
 149         }
 150     }
 151 
 152     @Test
 153     public void testProvidesFromAnotherModule(Path base) throws Exception {
 154         Path modules = base.resolve("modules");
 155         tb.writeJavaFiles(modules.resolve("M"),
 156                 "module M { exports p; }",
 157                 "package p; public class Service { }");
 158         tb.writeJavaFiles(modules.resolve("L"),
 159                 "module L { requires M; provides p.Service with p.Service; }");
 160 
 161         List<String> output = new JavacTask(tb)
 162                 .options("-XDrawDiagnostics",
 163                         "--module-source-path", modules.toString())
 164                 .outdir(Files.createDirectories(base.resolve("classes")))
 165                 .files(findJavaFiles(modules))
 166                 .run(Task.Expect.FAIL)
 167                 .writeAll()
 168                 .getOutputLines(Task.OutputKind.DIRECT);
 169         List<String> expected = Arrays.asList(
 170                 "module-info.java:1:24: compiler.err.service.implementation.not.in.right.module: M",
 171                 "1 error");
 172         if (!output.containsAll(expected)) {
 173             throw new Exception("Expected output not found");
 174         }
 175 
 176     }
 177 
 178     @Test
 179     public void testServiceIsNotImplemented(Path base) throws Exception {
 180         Path src = base.resolve("src");
 181         tb.writeJavaFiles(src,
 182                 "module m { provides p.A with p.B; }",
 183                 "package p; public class A { }",


< prev index next >