Search in sources :

Example 41 with Source

use of org.graalvm.polyglot.Source in project graal by oracle.

the class SLInspectDebugTest method testBreakpointDeactivation.

@Test
public void testBreakpointDeactivation() throws Exception {
    tester = InspectorTester.start(true);
    Source source = Source.newBuilder("sl", CODE2, "SLTest.sl").build();
    String slTestURI = ScriptsHandler.getNiceStringFromURI(source.getURI());
    tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
    tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
    String srcURL = ScriptsHandler.getNiceStringFromURI(source.getURI());
    assertTrue(tester.compareReceivedMessages("{\"result\":{},\"id\":1}\n" + "{\"result\":{},\"id\":2}\n"));
    tester.sendMessage("{\"id\":3,\"method\":\"Debugger.setBreakpointByUrl\",\"params\":{\"lineNumber\":9,\"url\":\"" + srcURL + "\",\"columnNumber\":0,\"condition\":\"\"}}");
    assertEquals("{\"result\":{\"breakpointId\":\"1\",\"locations\":[]},\"id\":3}", tester.getMessages(true).trim());
    tester.sendMessage("{\"id\":4,\"method\":\"Debugger.setBreakpointByUrl\",\"params\":{\"lineNumber\":10,\"url\":\"" + srcURL + "\",\"columnNumber\":0,\"condition\":\"\"}}");
    assertEquals("{\"result\":{\"breakpointId\":\"2\",\"locations\":[]},\"id\":4}", tester.getMessages(true).trim());
    // Deactivate the breakpoints:
    tester.sendMessage("{\"id\":10,\"method\":\"Debugger.setBreakpointsActive\",\"params\":{\"active\":false}}");
    assertEquals("{\"result\":{},\"id\":10}", tester.getMessages(true).trim());
    tester.eval(source);
    // Suspend at the beginning of the script:
    long id = tester.getContextId();
    assertTrue(tester.compareReceivedMessages("{\"method\":\"Debugger.scriptParsed\",\"params\":{\"endLine\":0,\"scriptId\":\"0\",\"endColumn\":0,\"startColumn\":0,\"startLine\":0,\"length\":0,\"executionContextId\":" + id + ",\"url\":\"" + SL_BUILTIN_URI + "\",\"hash\":\"ffffffffffffffffffffffffffffffffffffffff\"}}\n" + "{\"method\":\"Debugger.scriptParsed\",\"params\":{\"endLine\":11,\"scriptId\":\"1\",\"endColumn\":1,\"startColumn\":0,\"startLine\":0,\"length\":144,\"executionContextId\":" + id + ",\"url\":\"" + slTestURI + "\",\"hash\":\"ee148976fc7d6f36fc01da4bfba1c3f3ff485978\"}}\n" + "{\"method\":\"Debugger.breakpointResolved\",\"params\":{\"breakpointId\":\"1\",\"location\":{\"scriptId\":\"1\",\"columnNumber\":2,\"lineNumber\":9}}}\n" + "{\"method\":\"Debugger.breakpointResolved\",\"params\":{\"breakpointId\":\"2\",\"location\":{\"scriptId\":\"1\",\"columnNumber\":2,\"lineNumber\":10}}}\n" + "{\"method\":\"Debugger.paused\",\"params\":{\"reason\":\"other\",\"hitBreakpoints\":[]," + "\"callFrames\":[{\"callFrameId\":\"0\",\"functionName\":\"main\"," + "\"scopeChain\":[{\"name\":\"main\",\"type\":\"local\",\"object\":{\"description\":\"main\",\"type\":\"object\",\"objectId\":\"1\"}}," + "{\"name\":\"global\",\"type\":\"global\",\"object\":{\"description\":\"global\",\"type\":\"object\",\"objectId\":\"2\"}}]," + "\"functionLocation\":{\"scriptId\":\"1\",\"columnNumber\":9,\"lineNumber\":0}," + "\"location\":{\"scriptId\":\"1\",\"columnNumber\":2,\"lineNumber\":1}}]}}\n"));
    // Step over to while cycle and over the method with breakpoints:
    for (int numStep = 0; numStep < 4; numStep++) {
        tester.sendMessage("{\"id\":" + (20 + numStep) + ",\"method\":\"Debugger.stepOver\"}");
        int colNum = (numStep == 1) ? 9 : (numStep >= 2) ? 4 : 2;
        assertTrue(tester.compareReceivedMessages("{\"result\":{},\"id\":" + (20 + numStep) + "}\n" + "{\"method\":\"Debugger.resumed\"}\n" + "{\"method\":\"Debugger.paused\",\"params\":{\"reason\":\"other\",\"hitBreakpoints\":[]," + "\"callFrames\":[{\"callFrameId\":\"0\",\"functionName\":\"main\"," + "\"scopeChain\":[{\"name\":\"main\",\"type\":\"local\",\"object\":{\"description\":\"main\",\"type\":\"object\",\"objectId\":\"" + (3 + 2 * numStep) + "\"}}," + "{\"name\":\"global\",\"type\":\"global\",\"object\":{\"description\":\"global\",\"type\":\"object\",\"objectId\":\"" + (4 + 2 * numStep) + "\"}}]," + "\"functionLocation\":{\"scriptId\":\"1\",\"columnNumber\":9,\"lineNumber\":0}," + "\"location\":{\"scriptId\":\"1\",\"columnNumber\":" + colNum + ",\"lineNumber\":" + (2 + numStep) + "}}]}}\n"));
    }
    // Step to while again
    tester.sendMessage("{\"id\":28,\"method\":\"Debugger.stepOver\"}");
    assertTrue(tester.compareReceivedMessages("{\"result\":{},\"id\":28}\n" + "{\"method\":\"Debugger.resumed\"}\n" + "{\"method\":\"Debugger.paused\",\"params\":{\"reason\":\"other\",\"hitBreakpoints\":[]," + "\"callFrames\":[{\"callFrameId\":\"0\",\"functionName\":\"main\"," + "\"scopeChain\":[{\"name\":\"main\",\"type\":\"local\",\"object\":{\"description\":\"main\",\"type\":\"object\",\"objectId\":\"11\"}}," + "{\"name\":\"global\",\"type\":\"global\",\"object\":{\"description\":\"global\",\"type\":\"object\",\"objectId\":\"12\"}}]," + "\"functionLocation\":{\"scriptId\":\"1\",\"columnNumber\":9,\"lineNumber\":0}," + "\"location\":{\"scriptId\":\"1\",\"columnNumber\":9,\"lineNumber\":3}}]}}\n"));
    // Step to the method call with breakpoints again:
    tester.sendMessage("{\"id\":29,\"method\":\"Debugger.stepOver\"}");
    assertTrue(tester.compareReceivedMessages("{\"result\":{},\"id\":29}\n" + "{\"method\":\"Debugger.resumed\"}\n" + "{\"method\":\"Debugger.paused\",\"params\":{\"reason\":\"other\",\"hitBreakpoints\":[]," + "\"callFrames\":[{\"callFrameId\":\"0\",\"functionName\":\"main\"," + "\"scopeChain\":[{\"name\":\"main\",\"type\":\"local\",\"object\":{\"description\":\"main\",\"type\":\"object\",\"objectId\":\"13\"}}," + "{\"name\":\"global\",\"type\":\"global\",\"object\":{\"description\":\"global\",\"type\":\"object\",\"objectId\":\"14\"}}]," + "\"functionLocation\":{\"scriptId\":\"1\",\"columnNumber\":9,\"lineNumber\":0}," + "\"location\":{\"scriptId\":\"1\",\"columnNumber\":4,\"lineNumber\":4}}]}}\n"));
    // Activate the breakpoints:
    tester.sendMessage("{\"id\":30,\"method\":\"Debugger.setBreakpointsActive\",\"params\":{\"active\":true}}");
    assertEquals("{\"result\":{},\"id\":30}", tester.getMessages(true).trim());
    tester.sendMessage("{\"id\":31,\"method\":\"Debugger.stepOver\"}");
    // Step over not finished, the first breakpoint is hit:
    assertTrue(tester.compareReceivedMessages("{\"result\":{},\"id\":31}\n" + "{\"method\":\"Debugger.resumed\"}\n" + "{\"method\":\"Debugger.paused\",\"params\":{\"reason\":\"other\",\"hitBreakpoints\":[\"1\"]," + "\"callFrames\":[{\"callFrameId\":\"0\",\"functionName\":\"fceWithBP\"," + "\"scopeChain\":[{\"name\":\"fceWithBP\",\"type\":\"local\",\"object\":{\"description\":\"fceWithBP\",\"type\":\"object\",\"objectId\":\"15\"}}," + "{\"name\":\"global\",\"type\":\"global\",\"object\":{\"description\":\"global\",\"type\":\"object\",\"objectId\":\"16\"}}]," + "\"functionLocation\":{\"scriptId\":\"1\",\"columnNumber\":9,\"lineNumber\":8}," + "\"location\":{\"scriptId\":\"1\",\"columnNumber\":2,\"lineNumber\":9}}," + "{\"callFrameId\":\"1\",\"functionName\":\"main\"," + "\"scopeChain\":[{\"name\":\"main\",\"type\":\"local\",\"object\":{\"description\":\"main\",\"type\":\"object\",\"objectId\":\"17\"}}," + "{\"name\":\"global\",\"type\":\"global\",\"object\":{\"description\":\"global\",\"type\":\"object\",\"objectId\":\"18\"}}]," + "\"functionLocation\":{\"scriptId\":\"1\",\"columnNumber\":9,\"lineNumber\":0}," + "\"location\":{\"scriptId\":\"1\",\"columnNumber\":4,\"lineNumber\":4}}]}}\n"));
    tester.sendMessage("{\"id\":32,\"method\":\"Debugger.stepOut\"}");
    // Step out not finished, the second breakpoint is hit:
    assertTrue(tester.compareReceivedMessages("{\"result\":{},\"id\":32}\n" + "{\"method\":\"Debugger.resumed\"}\n" + "{\"method\":\"Debugger.paused\",\"params\":{\"reason\":\"other\",\"hitBreakpoints\":[\"2\"]," + "\"callFrames\":[{\"callFrameId\":\"0\",\"functionName\":\"fceWithBP\"," + "\"scopeChain\":[{\"name\":\"fceWithBP\",\"type\":\"local\",\"object\":{\"description\":\"fceWithBP\",\"type\":\"object\",\"objectId\":\"19\"}}," + "{\"name\":\"global\",\"type\":\"global\",\"object\":{\"description\":\"global\",\"type\":\"object\",\"objectId\":\"20\"}}]," + "\"functionLocation\":{\"scriptId\":\"1\",\"columnNumber\":9,\"lineNumber\":8}," + "\"location\":{\"scriptId\":\"1\",\"columnNumber\":2,\"lineNumber\":10}}," + "{\"callFrameId\":\"1\",\"functionName\":\"main\"," + "\"scopeChain\":[{\"name\":\"main\",\"type\":\"local\",\"object\":{\"description\":\"main\",\"type\":\"object\",\"objectId\":\"21\"}}," + "{\"name\":\"global\",\"type\":\"global\",\"object\":{\"description\":\"global\",\"type\":\"object\",\"objectId\":\"22\"}}]," + "\"functionLocation\":{\"scriptId\":\"1\",\"columnNumber\":9,\"lineNumber\":0}," + "\"location\":{\"scriptId\":\"1\",\"columnNumber\":4,\"lineNumber\":4}}]}}\n"));
    tester.sendMessage("{\"id\":33,\"method\":\"Debugger.stepOut\"}");
    // Step out finished now:
    assertTrue(tester.compareReceivedMessages("{\"result\":{},\"id\":33}\n" + "{\"method\":\"Debugger.resumed\"}\n" + "{\"method\":\"Debugger.paused\",\"params\":{\"reason\":\"other\",\"hitBreakpoints\":[]," + "\"callFrames\":[{\"callFrameId\":\"0\",\"functionName\":\"main\"," + "\"scopeChain\":[{\"name\":\"main\",\"type\":\"local\",\"object\":{\"description\":\"main\",\"type\":\"object\",\"objectId\":\"23\"}}," + "{\"name\":\"global\",\"type\":\"global\",\"object\":{\"description\":\"global\",\"type\":\"object\",\"objectId\":\"24\"}}]," + "\"functionLocation\":{\"scriptId\":\"1\",\"columnNumber\":9,\"lineNumber\":0}," + "\"location\":{\"scriptId\":\"1\",\"columnNumber\":4,\"lineNumber\":4}}]}}\n"));
    // Deactivate the breakpoints again:
    tester.sendMessage("{\"id\":40,\"method\":\"Debugger.setBreakpointsActive\",\"params\":{\"active\":false}}");
    assertEquals("{\"result\":{},\"id\":40}", tester.getMessages(true).trim());
    // Resume to finish:
    tester.sendMessage("{\"id\":45,\"method\":\"Debugger.resume\"}");
    assertTrue(tester.compareReceivedMessages("{\"result\":{},\"id\":45}\n" + "{\"method\":\"Debugger.resumed\"}\n"));
    tester.finish();
}
Also used : Source(org.graalvm.polyglot.Source) Test(org.junit.Test)

Example 42 with Source

use of org.graalvm.polyglot.Source in project graal by oracle.

the class SLInspectProfileTest method testDetailedCodeCoverage.

@Test
public void testDetailedCodeCoverage() throws Exception {
    tester = InspectorTester.start(false);
    Source source = Source.newBuilder("sl", CODE2, "SLTest.sl").build();
    String slTestURI = ScriptsHandler.getNiceStringFromURI(source.getURI());
    tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
    assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
    tester.sendMessage("{\"id\":2,\"method\":\"Profiler.enable\"}");
    assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
    tester.sendMessage("{\"id\":3,\"method\":\"Profiler.startPreciseCoverage\",\"params\":{\"detailed\":true}}");
    assertEquals("{\"result\":{},\"id\":3}", tester.getMessages(true).trim());
    tester.sendMessage("{\"id\":4,\"method\":\"Profiler.takePreciseCoverage\"}");
    assertEquals("{\"result\":{\"result\":[]},\"id\":4}", tester.getMessages(true).trim());
    tester.eval(source).get();
    tester.sendMessage("{\"id\":5,\"method\":\"Profiler.takePreciseCoverage\"}");
    assertEquals("{\"result\":{\"result\":[{\"scriptId\":\"1\",\"functions\":[" + "{\"ranges\":[{\"endOffset\":34,\"startOffset\":22,\"count\":2}],\"functionName\":\"add\",\"isBlockCoverage\":true}," + "{\"ranges\":[{\"endOffset\":66,\"startOffset\":57,\"count\":1},{\"endOffset\":90,\"startOffset\":69,\"count\":1}],\"functionName\":\"main\",\"isBlockCoverage\":true}]," + "\"url\":\"" + slTestURI + "\"}]},\"id\":5}", tester.getMessages(true).trim());
    tester.sendMessage("{\"id\":6,\"method\":\"Profiler.takePreciseCoverage\"}");
    assertEquals("{\"result\":{\"result\":[]},\"id\":6}", tester.getMessages(true).trim());
    tester.sendMessage("{\"id\":7,\"method\":\"Profiler.stopPreciseCoverage\"}");
    assertEquals("{\"result\":{},\"id\":7}", tester.getMessages(true).trim());
    tester.sendMessage("{\"id\":8,\"method\":\"Profiler.disable\"}");
    assertEquals("{\"result\":{},\"id\":8}", tester.getMessages(true).trim());
    tester.finish();
}
Also used : Source(org.graalvm.polyglot.Source) Test(org.junit.Test)

Example 43 with Source

use of org.graalvm.polyglot.Source in project graal by oracle.

the class SLInspectProfileTest method testCodeCoverage.

@Test
public void testCodeCoverage() throws Exception {
    tester = InspectorTester.start(false);
    Source source = Source.newBuilder("sl", CODE2, "SLTest.sl").build();
    String slTestURI = ScriptsHandler.getNiceStringFromURI(source.getURI());
    tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
    assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
    tester.sendMessage("{\"id\":2,\"method\":\"Profiler.enable\"}");
    assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
    tester.sendMessage("{\"id\":3,\"method\":\"Profiler.startPreciseCoverage\"}");
    assertEquals("{\"result\":{},\"id\":3}", tester.getMessages(true).trim());
    tester.sendMessage("{\"id\":4,\"method\":\"Profiler.takePreciseCoverage\"}");
    assertEquals("{\"result\":{\"result\":[]},\"id\":4}", tester.getMessages(true).trim());
    tester.eval(source).get();
    tester.sendMessage("{\"id\":5,\"method\":\"Profiler.takePreciseCoverage\"}");
    assertEquals("{\"result\":{\"result\":[{\"scriptId\":\"1\",\"functions\":[" + "{\"ranges\":[{\"endOffset\":37,\"startOffset\":9,\"count\":2}],\"functionName\":\"add\",\"isBlockCoverage\":false}," + "{\"ranges\":[{\"endOffset\":93,\"startOffset\":47,\"count\":1}],\"functionName\":\"main\",\"isBlockCoverage\":false}]," + "\"url\":\"" + slTestURI + "\"}]},\"id\":5}", tester.getMessages(true).trim());
    tester.sendMessage("{\"id\":6,\"method\":\"Profiler.takePreciseCoverage\"}");
    assertEquals("{\"result\":{\"result\":[]},\"id\":6}", tester.getMessages(true).trim());
    tester.sendMessage("{\"id\":7,\"method\":\"Profiler.stopPreciseCoverage\"}");
    assertEquals("{\"result\":{},\"id\":7}", tester.getMessages(true).trim());
    tester.sendMessage("{\"id\":8,\"method\":\"Profiler.disable\"}");
    assertEquals("{\"result\":{},\"id\":8}", tester.getMessages(true).trim());
    tester.finish();
}
Also used : Source(org.graalvm.polyglot.Source) Test(org.junit.Test)

Example 44 with Source

use of org.graalvm.polyglot.Source in project graal by oracle.

the class BreakpointTest method testGlobalBreakpointsInMultipleSessions.

@Test
public void testGlobalBreakpointsInMultipleSessions() throws Throwable {
    try {
        Class.forName("java.beans.PropertyChangeListener");
    } catch (ClassNotFoundException ex) {
        // skip the test if running only with java.base JDK9 module
        return;
    }
    final Source source = testSource("ROOT(\n" + "  STATEMENT,\n" + "  STATEMENT,\n" + "  STATEMENT,\n" + "  STATEMENT,\n" + "  STATEMENT,\n" + "  STATEMENT,\n" + "  STATEMENT,\n" + "  STATEMENT,\n" + "  STATEMENT,\n" + "  STATEMENT\n" + ")\n");
    Debugger debugger = getDebugger();
    Breakpoint globalBreakpoint1 = Breakpoint.newBuilder(getSourceImpl(source)).lineIs(2).build();
    debugger.install(globalBreakpoint1);
    Breakpoint globalBreakpoint2 = Breakpoint.newBuilder(getSourceImpl(source)).lineIs(4).build();
    debugger.install(globalBreakpoint2);
    Breakpoint globalBreakpoint3 = Breakpoint.newBuilder(getSourceImpl(source)).lineIs(6).build();
    debugger.install(globalBreakpoint3);
    Breakpoint globalBreakpoint4 = Breakpoint.newBuilder(getSourceImpl(source)).lineIs(8).build();
    debugger.install(globalBreakpoint4);
    // Breakpoints are in the install order:
    List<Breakpoint> breakpoints = debugger.getBreakpoints();
    Assert.assertEquals(4, breakpoints.size());
    Assert.assertTrue(breakpoints.get(0).getLocationDescription().contains("line=2"));
    Assert.assertTrue(breakpoints.get(1).getLocationDescription().contains("line=4"));
    Assert.assertTrue(breakpoints.get(2).getLocationDescription().contains("line=6"));
    DebuggerSession session1 = startSession();
    // global breakpoints are not among session breakpoints
    Assert.assertTrue(session1.getBreakpoints().isEmpty());
    try (DebuggerSession session2 = startSession()) {
        // global breakpoints are not among session breakpoints
        Assert.assertTrue(session2.getBreakpoints().isEmpty());
        startEval(source);
        // Both sessions should break here:
        expectSuspended((SuspendedEvent event) -> {
            assertSame(session1, event.getSession());
            checkState(event, 2, true, "STATEMENT").prepareContinue();
        });
        expectSuspended((SuspendedEvent event) -> {
            assertSame(session2, event.getSession());
            checkState(event, 2, true, "STATEMENT").prepareContinue();
        });
        // We close session2 after the next BP:
        expectSuspended((SuspendedEvent event) -> {
            assertSame(session1, event.getSession());
            checkState(event, 4, true, "STATEMENT");
        });
    }
    expectSuspended((SuspendedEvent event) -> {
        assertNotSame(session1, event.getSession());
        checkState(event, 4, true, "STATEMENT").prepareContinue();
    });
    // The last breakpoint is hit once only in the session1:
    expectSuspended((SuspendedEvent event) -> {
        assertSame(session1, event.getSession());
        checkState(event, 6, true, "STATEMENT").prepareStepOver(1);
    });
    expectSuspended((SuspendedEvent event) -> {
        assertSame(session1, event.getSession());
        checkState(event, 7, true, "STATEMENT");
        session1.close();
        event.prepareContinue();
    });
    // Breakpoint at line 8 was not hit at all, the session was closed right before continue
    // from line 7.
    expectDone();
}
Also used : Debugger(com.oracle.truffle.api.debug.Debugger) Breakpoint(com.oracle.truffle.api.debug.Breakpoint) DebuggerSession(com.oracle.truffle.api.debug.DebuggerSession) SuspendedEvent(com.oracle.truffle.api.debug.SuspendedEvent) Source(org.graalvm.polyglot.Source) Test(org.junit.Test)

Example 45 with Source

use of org.graalvm.polyglot.Source in project graal by oracle.

the class BreakpointTest method testBreakSource.

@Test
public void testBreakSource() throws Throwable {
    final Source source = testSource("ROOT(\n" + "  STATEMENT,\n" + "  STATEMENT,\n" + // break here
    "  STATEMENT,\n" + "  STATEMENT,\n" + "  STATEMENT\n" + ")\n");
    Breakpoint sessionBreakpoint = null;
    try (DebuggerSession session = startSession()) {
        Breakpoint breakpoint = session.install(Breakpoint.newBuilder(getSourceImpl(source)).lineIs(4).build());
        sessionBreakpoint = breakpoint;
        startEval(source);
        expectSuspended((SuspendedEvent event) -> {
            checkState(event, 4, true, "STATEMENT");
            Assert.assertEquals(1, event.getBreakpoints().size());
            Assert.assertSame(breakpoint, event.getBreakpoints().get(0));
        });
        Assert.assertEquals(1, breakpoint.getHitCount());
        Assert.assertEquals(true, breakpoint.isEnabled());
        Assert.assertEquals(true, breakpoint.isResolved());
        expectDone();
    }
    Assert.assertEquals(false, sessionBreakpoint.isResolved());
}
Also used : Breakpoint(com.oracle.truffle.api.debug.Breakpoint) DebuggerSession(com.oracle.truffle.api.debug.DebuggerSession) SuspendedEvent(com.oracle.truffle.api.debug.SuspendedEvent) Source(org.graalvm.polyglot.Source) Test(org.junit.Test)

Aggregations

Source (org.graalvm.polyglot.Source)196 Test (org.junit.Test)165 DebuggerSession (com.oracle.truffle.api.debug.DebuggerSession)103 SuspendedEvent (com.oracle.truffle.api.debug.SuspendedEvent)95 Breakpoint (com.oracle.truffle.api.debug.Breakpoint)51 Value (org.graalvm.polyglot.Value)31 Context (org.graalvm.polyglot.Context)25 DebugStackFrame (com.oracle.truffle.api.debug.DebugStackFrame)21 DebugValue (com.oracle.truffle.api.debug.DebugValue)20 TruffleInstrument (com.oracle.truffle.api.instrumentation.TruffleInstrument)14 Instrument (org.graalvm.polyglot.Instrument)14 Debugger (com.oracle.truffle.api.debug.Debugger)13 SourceSection (com.oracle.truffle.api.source.SourceSection)12 EventContext (com.oracle.truffle.api.instrumentation.EventContext)10 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)9 Engine (org.graalvm.polyglot.Engine)9 ArrayList (java.util.ArrayList)8 PolyglotException (org.graalvm.polyglot.PolyglotException)8 SuspensionFilter (com.oracle.truffle.api.debug.SuspensionFilter)7 AbstractInstrumentationTest (com.oracle.truffle.api.instrumentation.test.AbstractInstrumentationTest)7