test/jdk/jshell/KullaTesting.java

Print this page




  56 import jdk.jshell.MethodSnippet;
  57 import jdk.jshell.PersistentSnippet;
  58 import jdk.jshell.Snippet.Status;
  59 import jdk.jshell.Snippet.SubKind;
  60 import jdk.jshell.TypeDeclSnippet;
  61 import jdk.jshell.VarSnippet;
  62 import jdk.jshell.SnippetEvent;
  63 import jdk.jshell.SourceCodeAnalysis;
  64 import jdk.jshell.SourceCodeAnalysis.CompletionInfo;
  65 import jdk.jshell.SourceCodeAnalysis.Completeness;
  66 import jdk.jshell.SourceCodeAnalysis.QualifiedNames;
  67 import jdk.jshell.SourceCodeAnalysis.Suggestion;
  68 import jdk.jshell.UnresolvedReferenceException;
  69 import org.testng.annotations.AfterMethod;
  70 import org.testng.annotations.BeforeMethod;
  71 
  72 import jdk.jshell.Diag;
  73 import static jdk.jshell.Snippet.Status.*;
  74 import static org.testng.Assert.*;
  75 import static jdk.jshell.Snippet.SubKind.METHOD_SUBKIND;
  76 import jdk.jshell.spi.ExecutionControl;
  77 
  78 public class KullaTesting {
  79 
  80     public static final String IGNORE_VALUE = "<ignore-value>";
  81     public static final Class<? extends Throwable> IGNORE_EXCEPTION = (new Throwable() {}).getClass();
  82     public static final Snippet MAIN_SNIPPET;
  83 
  84     private SourceCodeAnalysis analysis = null;
  85     private JShell state = null;
  86     private TestingInputStream inStream = null;
  87     private ByteArrayOutputStream outStream = null;
  88     private ByteArrayOutputStream errStream = null;
  89 
  90     private Map<String, Snippet> idToSnippet = new LinkedHashMap<>();
  91     private Set<Snippet> allSnippets = new LinkedHashSet<>();
  92     private List<String> classpath;
  93 
  94     static {
  95         JShell js = JShell.create();
  96         MAIN_SNIPPET = js.eval("MAIN_SNIPPET").get(0).snippet();


 139     }
 140 
 141     public List<Snippet> getActiveKeys() {
 142         return allSnippets.stream()
 143                 .filter(k -> getState().status(k).isActive())
 144                 .collect(Collectors.toList());
 145     }
 146 
 147     public void addToClasspath(String path) {
 148         classpath.add(path);
 149         getState().addToClasspath(path);
 150     }
 151 
 152     public void addToClasspath(Path path) {
 153         addToClasspath(path.toString());
 154     }
 155 
 156     @BeforeMethod
 157     public void setUp() {
 158         setUp(b -> {});
 159     }
 160 
 161     public void setUp(ExecutionControl ec) {
 162         setUp(b -> b.executionEngine(ec));
 163     }
 164 
 165     public void setUp(Consumer<JShell.Builder> bc) {
 166         inStream = new TestingInputStream();
 167         outStream = new ByteArrayOutputStream();
 168         errStream = new ByteArrayOutputStream();
 169         JShell.Builder builder = JShell.builder()
 170                 .in(inStream)
 171                 .out(new PrintStream(outStream))
 172                 .err(new PrintStream(errStream));
 173         bc.accept(builder);
 174         state = builder.build();
 175         allSnippets = new LinkedHashSet<>();
 176         idToSnippet = new LinkedHashMap<>();
 177         classpath = new ArrayList<>();
 178     }
 179 
 180     @AfterMethod
 181     public void tearDown() {
 182         if (state != null) state.close();




  56 import jdk.jshell.MethodSnippet;
  57 import jdk.jshell.PersistentSnippet;
  58 import jdk.jshell.Snippet.Status;
  59 import jdk.jshell.Snippet.SubKind;
  60 import jdk.jshell.TypeDeclSnippet;
  61 import jdk.jshell.VarSnippet;
  62 import jdk.jshell.SnippetEvent;
  63 import jdk.jshell.SourceCodeAnalysis;
  64 import jdk.jshell.SourceCodeAnalysis.CompletionInfo;
  65 import jdk.jshell.SourceCodeAnalysis.Completeness;
  66 import jdk.jshell.SourceCodeAnalysis.QualifiedNames;
  67 import jdk.jshell.SourceCodeAnalysis.Suggestion;
  68 import jdk.jshell.UnresolvedReferenceException;
  69 import org.testng.annotations.AfterMethod;
  70 import org.testng.annotations.BeforeMethod;
  71 
  72 import jdk.jshell.Diag;
  73 import static jdk.jshell.Snippet.Status.*;
  74 import static org.testng.Assert.*;
  75 import static jdk.jshell.Snippet.SubKind.METHOD_SUBKIND;

  76 
  77 public class KullaTesting {
  78 
  79     public static final String IGNORE_VALUE = "<ignore-value>";
  80     public static final Class<? extends Throwable> IGNORE_EXCEPTION = (new Throwable() {}).getClass();
  81     public static final Snippet MAIN_SNIPPET;
  82 
  83     private SourceCodeAnalysis analysis = null;
  84     private JShell state = null;
  85     private TestingInputStream inStream = null;
  86     private ByteArrayOutputStream outStream = null;
  87     private ByteArrayOutputStream errStream = null;
  88 
  89     private Map<String, Snippet> idToSnippet = new LinkedHashMap<>();
  90     private Set<Snippet> allSnippets = new LinkedHashSet<>();
  91     private List<String> classpath;
  92 
  93     static {
  94         JShell js = JShell.create();
  95         MAIN_SNIPPET = js.eval("MAIN_SNIPPET").get(0).snippet();


 138     }
 139 
 140     public List<Snippet> getActiveKeys() {
 141         return allSnippets.stream()
 142                 .filter(k -> getState().status(k).isActive())
 143                 .collect(Collectors.toList());
 144     }
 145 
 146     public void addToClasspath(String path) {
 147         classpath.add(path);
 148         getState().addToClasspath(path);
 149     }
 150 
 151     public void addToClasspath(Path path) {
 152         addToClasspath(path.toString());
 153     }
 154 
 155     @BeforeMethod
 156     public void setUp() {
 157         setUp(b -> {});




 158     }
 159 
 160     public void setUp(Consumer<JShell.Builder> bc) {
 161         inStream = new TestingInputStream();
 162         outStream = new ByteArrayOutputStream();
 163         errStream = new ByteArrayOutputStream();
 164         JShell.Builder builder = JShell.builder()
 165                 .in(inStream)
 166                 .out(new PrintStream(outStream))
 167                 .err(new PrintStream(errStream));
 168         bc.accept(builder);
 169         state = builder.build();
 170         allSnippets = new LinkedHashSet<>();
 171         idToSnippet = new LinkedHashMap<>();
 172         classpath = new ArrayList<>();
 173     }
 174 
 175     @AfterMethod
 176     public void tearDown() {
 177         if (state != null) state.close();