langtools/test/tools/javac/modules/AnnotationProcessing.java
changeset 43037 3e1520a857fa
parent 42824 89b14017e8d6
child 43149 047a57b0839a
--- a/langtools/test/tools/javac/modules/AnnotationProcessing.java	Thu Jan 05 15:39:57 2017 -0800
+++ b/langtools/test/tools/javac/modules/AnnotationProcessing.java	Fri Jan 06 14:16:45 2017 +0100
@@ -23,7 +23,7 @@
 
 /**
  * @test
- * @bug 8133884 8162711 8133896
+ * @bug 8133884 8162711 8133896 8172158
  * @summary Verify that annotation processing works.
  * @library /tools/lib
  * @modules
@@ -979,6 +979,38 @@
         }
     }
 
+    @Test
+    public void testDisambiguateAnnotationsNoModules(Path base) throws Exception {
+        Path classes = base.resolve("classes");
+
+        Files.createDirectories(classes);
+
+        Path src = base.resolve("src");
+
+        tb.writeJavaFiles(src,
+                          "package api; public @interface A {}",
+                          "package api; public @interface B {}",
+                          "package impl; import api.*; @A @B public class T {}");
+
+        List<String> log = new JavacTask(tb)
+            .options("-processor", SelectAnnotationATestAP.class.getName() + "," + SelectAnnotationBTestAP.class.getName(),
+                     "-source", "8", "-target", "8")
+            .outdir(classes)
+            .files(findJavaFiles(src))
+            .run()
+            .writeAll()
+            .getOutputLines(OutputKind.STDERR);
+
+        List<String> expected = Arrays.asList("SelectAnnotationATestAP",
+                                              "SelectAnnotationBTestAP",
+                                              "SelectAnnotationATestAP",
+                                              "SelectAnnotationBTestAP");
+
+        if (!expected.equals(log)) {
+            throw new AssertionError("Output does not match; output: " + log);
+        }
+    }
+
     @SupportedAnnotationTypes("m2x/api.A")
     public static final class SelectAnnotationATestAP extends AbstractProcessor {