test/jdk/jshell/ComputeFQNsTest.java

Print this page




  59         assertInferredFQNs("ArrayList", "java.util.ArrayList");
  60         assertInferredFQNs("TestClass", "test1.TestClass", "test2.TestClass");
  61         assertInferredFQNs("CharSequence", "CharSequence".length(), true, "java.lang.CharSequence");
  62         assertInferredFQNs("unresolvable");
  63         assertInferredFQNs("void test(ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
  64         assertInferredFQNs("void test(ArrayList l) throws InvocationTargetException", "InvocationTargetException".length(), false, "java.lang.reflect.InvocationTargetException");
  65         assertInferredFQNs("void test(ArrayList l) { ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
  66         assertInferredFQNs("<T extends ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
  67         assertInferredFQNs("Object l = Arrays", "Arrays".length(), false, "java.util.Arrays");
  68         assertInferredFQNs("class X<T extends ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
  69         assertInferredFQNs("class X extends ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
  70         assertInferredFQNs("class X extends java.util.ArrayList<TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
  71         assertInferredFQNs("class X extends java.util.ArrayList<TypeMirror, TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
  72         assertInferredFQNs("class X implements TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
  73         assertInferredFQNs("class X implements TypeMirror, TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
  74         assertInferredFQNs("class X implements java.util.List<TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
  75         assertInferredFQNs("class X implements java.util.List<TypeMirror, TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
  76         assertInferredFQNs("class X { ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
  77     }
  78 
  79     @Test
  80     public void testSuspendIndexing() throws Throwable {
  81         compiler.compile(outDir, "package test; public class FQNTest { }");
  82         String jarName = "test.jar";
  83         compiler.jar(outDir, jarName, "test/FQNTest.class");
  84         Path continueMarkFile = outDir.resolve("continuemark").toAbsolutePath();
  85         Files.createDirectories(continueMarkFile.getParent());
  86         try (Writer w = Files.newBufferedWriter(continueMarkFile)) {}
  87 
  88         Path runMarkFile = outDir.resolve("runmark").toAbsolutePath();
  89         Files.deleteIfExists(runMarkFile);
  90 
  91         getState().sourceCodeAnalysis();
  92 
  93         Throwable[] evalException = new Throwable[1];
  94 
  95         new Thread() {
  96             @Override public void run() {
  97                 try {
  98                     assertEval("{new java.io.FileOutputStream(\"" + runMarkFile.toAbsolutePath().toString().replace("\\", "\\\\") + "\").close();" +
  99                                " while (java.nio.file.Files.exists(java.nio.file.Paths.get(\"" + continueMarkFile.toAbsolutePath().toString().replace("\\", "\\\\") + "\"))) Thread.sleep(100); }");




  59         assertInferredFQNs("ArrayList", "java.util.ArrayList");
  60         assertInferredFQNs("TestClass", "test1.TestClass", "test2.TestClass");
  61         assertInferredFQNs("CharSequence", "CharSequence".length(), true, "java.lang.CharSequence");
  62         assertInferredFQNs("unresolvable");
  63         assertInferredFQNs("void test(ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
  64         assertInferredFQNs("void test(ArrayList l) throws InvocationTargetException", "InvocationTargetException".length(), false, "java.lang.reflect.InvocationTargetException");
  65         assertInferredFQNs("void test(ArrayList l) { ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
  66         assertInferredFQNs("<T extends ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
  67         assertInferredFQNs("Object l = Arrays", "Arrays".length(), false, "java.util.Arrays");
  68         assertInferredFQNs("class X<T extends ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
  69         assertInferredFQNs("class X extends ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
  70         assertInferredFQNs("class X extends java.util.ArrayList<TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
  71         assertInferredFQNs("class X extends java.util.ArrayList<TypeMirror, TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
  72         assertInferredFQNs("class X implements TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
  73         assertInferredFQNs("class X implements TypeMirror, TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
  74         assertInferredFQNs("class X implements java.util.List<TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
  75         assertInferredFQNs("class X implements java.util.List<TypeMirror, TypeElement", "TypeElement".length(), false, "javax.lang.model.element.TypeElement");
  76         assertInferredFQNs("class X { ArrayList", "ArrayList".length(), false, "java.util.ArrayList");
  77     }
  78 
  79     @Test(enabled = false) //TODO 8161165
  80     public void testSuspendIndexing() throws Throwable {
  81         compiler.compile(outDir, "package test; public class FQNTest { }");
  82         String jarName = "test.jar";
  83         compiler.jar(outDir, jarName, "test/FQNTest.class");
  84         Path continueMarkFile = outDir.resolve("continuemark").toAbsolutePath();
  85         Files.createDirectories(continueMarkFile.getParent());
  86         try (Writer w = Files.newBufferedWriter(continueMarkFile)) {}
  87 
  88         Path runMarkFile = outDir.resolve("runmark").toAbsolutePath();
  89         Files.deleteIfExists(runMarkFile);
  90 
  91         getState().sourceCodeAnalysis();
  92 
  93         Throwable[] evalException = new Throwable[1];
  94 
  95         new Thread() {
  96             @Override public void run() {
  97                 try {
  98                     assertEval("{new java.io.FileOutputStream(\"" + runMarkFile.toAbsolutePath().toString().replace("\\", "\\\\") + "\").close();" +
  99                                " while (java.nio.file.Files.exists(java.nio.file.Paths.get(\"" + continueMarkFile.toAbsolutePath().toString().replace("\\", "\\\\") + "\"))) Thread.sleep(100); }");