51 private final Path outDir = Paths.get("ComputeFQNsTest");
52
53 public void testAddImport() throws Exception {
54 compiler.compile(outDir, "package test1; public class FQNTestClass { }", "package test2; public class FQNTestClass { }");
55 String jarName = "test.jar";
56 compiler.jar(outDir, jarName, "test1/FQNTestClass.class", "test2/FQNTestClass.class");
57 addToClasspath(compiler.getPath(outDir).resolve(jarName));
58
59 assertInferredFQNs("LinkedList", "java.util.LinkedList");
60 assertInferredFQNs("ArrayList", "java.util.ArrayList");
61 assertInferredFQNs("FQNTestClass", "test1.FQNTestClass", "test2.FQNTestClass");
62 assertInferredFQNs("CharSequence", "CharSequence".length(), true, "java.lang.CharSequence");
63 assertInferredFQNs("unresolvable");
64 assertInferredFQNs("void test(ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
65 assertInferredFQNs("void test(ArrayList l) throws InvocationTargetException", "InvocationTargetException".length(), false, "java.lang.reflect.InvocationTargetException");
66 assertInferredFQNs("void test(ArrayList l) { ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
67 assertInferredFQNs("<T extends ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
68 assertInferredFQNs("Object l = Arrays", "Arrays".length(), false, "java.util.Arrays");
69 assertInferredFQNs("class X<T extends ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
70 assertInferredFQNs("class X extends ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
71 assertInferredFQNs("class X extends java.util.ArrayList<TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
72 assertInferredFQNs("class X extends java.util.ArrayList<TypeMirror, TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
73 assertInferredFQNs("class X implements TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
74 assertInferredFQNs("class X implements TypeMirror, TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
75 assertInferredFQNs("class X implements java.util.List<TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
76 assertInferredFQNs("class X implements java.util.List<TypeMirror, TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
77 assertInferredFQNs("class X { ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
78 }
79
80 @Test(enabled = false) //TODO 8161165
81 public void testSuspendIndexing() throws Throwable {
82 compiler.compile(outDir, "package test; public class FQNTest { }");
83 String jarName = "test.jar";
84 compiler.jar(outDir, jarName, "test/FQNTest.class");
85 Path continueMarkFile = outDir.resolve("continuemark").toAbsolutePath();
86 Files.createDirectories(continueMarkFile.getParent());
87 try (Writer w = Files.newBufferedWriter(continueMarkFile)) {}
88
89 Path runMarkFile = outDir.resolve("runmark").toAbsolutePath();
90 Files.deleteIfExists(runMarkFile);
91
92 getState().sourceCodeAnalysis();
93
94 Throwable[] evalException = new Throwable[1];
95
96 new Thread() {
|
51 private final Path outDir = Paths.get("ComputeFQNsTest");
52
53 public void testAddImport() throws Exception {
54 compiler.compile(outDir, "package test1; public class FQNTestClass { }", "package test2; public class FQNTestClass { }");
55 String jarName = "test.jar";
56 compiler.jar(outDir, jarName, "test1/FQNTestClass.class", "test2/FQNTestClass.class");
57 addToClasspath(compiler.getPath(outDir).resolve(jarName));
58
59 assertInferredFQNs("LinkedList", "java.util.LinkedList");
60 assertInferredFQNs("ArrayList", "java.util.ArrayList");
61 assertInferredFQNs("FQNTestClass", "test1.FQNTestClass", "test2.FQNTestClass");
62 assertInferredFQNs("CharSequence", "CharSequence".length(), true, "java.lang.CharSequence");
63 assertInferredFQNs("unresolvable");
64 assertInferredFQNs("void test(ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
65 assertInferredFQNs("void test(ArrayList l) throws InvocationTargetException", "InvocationTargetException".length(), false, "java.lang.reflect.InvocationTargetException");
66 assertInferredFQNs("void test(ArrayList l) { ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
67 assertInferredFQNs("<T extends ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
68 assertInferredFQNs("Object l = Arrays", "Arrays".length(), false, "java.util.Arrays");
69 assertInferredFQNs("class X<T extends ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
70 assertInferredFQNs("class X extends ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
71 assertInferredFQNs("class X extends java.util.ArrayList<TypeElement", "TypeElement".length(), false, "java.lang.reflect.code.TypeElement", "javax.lang.model.element.TypeElement");
72 assertInferredFQNs("class X extends java.util.ArrayList<TypeMirror, TypeElement", "TypeElement".length(), false, "java.lang.reflect.code.TypeElement", "javax.lang.model.element.TypeElement");
73 assertInferredFQNs("class X implements TypeElement", "TypeElement".length(), false, "java.lang.reflect.code.TypeElement", "javax.lang.model.element.TypeElement");
74 assertInferredFQNs("class X implements TypeMirror, TypeElement", "TypeElement".length(), false, "java.lang.reflect.code.TypeElement", "javax.lang.model.element.TypeElement");
75 assertInferredFQNs("class X implements java.util.List<TypeElement", "TypeElement".length(), false, "java.lang.reflect.code.TypeElement", "javax.lang.model.element.TypeElement");
76 assertInferredFQNs("class X implements java.util.List<TypeMirror, TypeElement", "TypeElement".length(), false, "java.lang.reflect.code.TypeElement", "javax.lang.model.element.TypeElement");
77 assertInferredFQNs("class X { ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
78 }
79
80 @Test(enabled = false) //TODO 8161165
81 public void testSuspendIndexing() throws Throwable {
82 compiler.compile(outDir, "package test; public class FQNTest { }");
83 String jarName = "test.jar";
84 compiler.jar(outDir, jarName, "test/FQNTest.class");
85 Path continueMarkFile = outDir.resolve("continuemark").toAbsolutePath();
86 Files.createDirectories(continueMarkFile.getParent());
87 try (Writer w = Files.newBufferedWriter(continueMarkFile)) {}
88
89 Path runMarkFile = outDir.resolve("runmark").toAbsolutePath();
90 Files.deleteIfExists(runMarkFile);
91
92 getState().sourceCodeAnalysis();
93
94 Throwable[] evalException = new Throwable[1];
95
96 new Thread() {
|