diff -r 43104fb390fd -r f3702cff2933 langtools/test/tools/javac/modules/EdgeCases.java --- a/langtools/test/tools/javac/modules/EdgeCases.java Wed Nov 23 16:16:36 2016 +0000 +++ b/langtools/test/tools/javac/modules/EdgeCases.java Thu Dec 01 09:02:42 2016 +0000 @@ -206,7 +206,7 @@ Files.createDirectories(modulePath); - Path automaticJar = modulePath.resolve("m1-1.0.jar"); + Path automaticJar = modulePath.resolve("a-1.0.jar"); new JarTask(tb, automaticJar) .baseDir(automaticClasses) @@ -216,11 +216,11 @@ Path src = base.resolve("src"); Path src_m2 = src.resolve("m2"); tb.writeJavaFiles(src_m2, - "module m2 { requires m1; exports api2; }", + "module m2 { requires a; exports api2; }", "package api2; public class Api2 { public static api1.Api1 get() { return null; } }"); Path src_m3 = src.resolve("m3"); tb.writeJavaFiles(src_m3, - "module m3 { requires m1; requires m2; }", + "module m3 { requires a; requires m2; }", "package test; public class Test { { api2.Api2.get(); api1.Api1 a1; } }"); Path classes = base.resolve("classes"); tb.createDirectories(classes); @@ -459,4 +459,29 @@ syms.java_base.getDirectives(); } + + @Test + public void testPackageInModuleInfo(Path base) throws Exception { + Path src = base.resolve("src"); + Files.createDirectories(src); + tb.writeJavaFiles(src, "package p; module foo { }"); + Path classes = base.resolve("classes"); + tb.createDirectories(classes); + + List log = new JavacTask(tb) + .options("-XDrawDiagnostics", "-XDshould-stop.ifError=FLOW") + .outdir(classes) + .files(findJavaFiles(src)) + .run(Expect.FAIL) + .writeAll() + .getOutputLines(OutputKind.DIRECT); + + List expected = Arrays.asList( + "module-info.java:1:1: compiler.err.no.pkg.in.module-info.java", + "1 error"); + + if (!expected.equals(log)) { + throw new AssertionError("Unexpected output: " + log); + } + } }