Skip to content

Commit

Permalink
[GR-49664] Add the mandatory experimental property 'debuggerId' and h…
Browse files Browse the repository at this point in the history
…andle GET of /json/list path.

PullRequest: graal/15900
  • Loading branch information
entlicher committed Oct 27, 2023
2 parents 9c05445 + de48c84 commit db40984
Show file tree
Hide file tree
Showing 15 changed files with 165 additions and 76 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ protected final Future<?> runWith(Object truffleObject) throws Exception {
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
tester.receiveMessages(
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Debugger.setBreakpointByUrl\",\"params\":{\"lineNumber\":3,\"url\":\"" + FILE_NAME + "\",\"columnNumber\":0,\"condition\":\"\"}}");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{\"breakpointId\":\"1\",\"locations\":[]},\"id\":3}\n"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,9 +137,9 @@ private void testBuggyCalls(AtomicReference<ProxyLanguage> language, String pref
tester.setErr(errorStream);
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertTrue(tester.compareReceivedMessages(
tester.receiveMessages(
"{\"result\":{},\"id\":1}\n" +
"{\"result\":{},\"id\":2}\n"));
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public void testDisabledDomainsCalls() throws Exception {
tester.sendMessage("{\"id\":10," + debuggerMessage);
assertEquals("{\"id\":10,\"error\":{\"code\":-32601,\"message\":\"Domain Debugger is disabled.\"}}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":11,\"method\":\"Debugger.enable\"}");
assertEquals("{\"result\":{},\"id\":11}", tester.getMessages(true).trim());
tester.receiveMessages("{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":11}\n");
tester.sendMessage("{\"id\":12," + debuggerMessage);
assertEquals("{\"result\":{\"breakpointId\":\"1\",\"locations\":[]},\"id\":12}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":13,\"method\":\"Debugger.disable\"}");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ public void testSuspendInInitialization() throws Exception {
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
tester.receiveMessages(
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
Expand Down Expand Up @@ -101,7 +102,8 @@ public void testSuspendInInitialization() throws Exception {
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
tester.receiveMessages(
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
Expand Down Expand Up @@ -142,7 +144,8 @@ public void testSuspendInInternal() throws Exception {
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
tester.receiveMessages(
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
Expand Down Expand Up @@ -172,7 +175,8 @@ public void testSuspendInInternal() throws Exception {
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
tester.receiveMessages(
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
Expand Down Expand Up @@ -213,7 +217,8 @@ public void testThis() throws Exception {
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
tester.receiveMessages(
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
Expand Down Expand Up @@ -269,9 +274,10 @@ public void testShortURIs() throws Exception {
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
tester.receiveMessages(
"{\"result\":{},\"id\":1}\n" +
"{\"result\":{},\"id\":2}\n" +
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
"{\"method\":\"Runtime.executionContextCreated\",\"params\":{\"context\":{\"origin\":\"\",\"name\":\"test\",\"id\":1}}}\n"));
tester.eval(source1);
Expand Down Expand Up @@ -319,9 +325,10 @@ public void testOutput() throws Exception {
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
tester.receiveMessages(
"{\"result\":{},\"id\":1}\n" +
"{\"result\":{},\"id\":2}\n" +
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
"{\"method\":\"Runtime.executionContextCreated\",\"params\":{\"context\":{\"origin\":\"\",\"name\":\"test\",\"id\":1}}}\n"));
tester.eval(source);
Expand Down Expand Up @@ -387,9 +394,10 @@ public void testOutputNoNL() throws Exception {
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
tester.receiveMessages(
"{\"result\":{},\"id\":1}\n" +
"{\"result\":{},\"id\":2}\n" +
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
"{\"method\":\"Runtime.executionContextCreated\",\"params\":{\"context\":{\"origin\":\"\",\"name\":\"test\",\"id\":1}}}\n"));
tester.eval(source);
Expand Down Expand Up @@ -426,9 +434,10 @@ public void testAsynchronousStackTraces() throws Exception {
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
tester.sendMessage("{\"id\":3,\"method\":\"Debugger.setAsyncCallStackDepth\",\"params\":{\"maxDepth\":1}}");
tester.sendMessage("{\"id\":4,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
tester.receiveMessages(
"{\"result\":{},\"id\":1}\n" +
"{\"result\":{},\"id\":2}\n" +
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
"{\"result\":{},\"id\":4}\n" +
"{\"method\":\"Runtime.executionContextCreated\",\"params\":{\"context\":{\"origin\":\"\",\"name\":\"test\",\"id\":1}}}\n"));
Expand Down Expand Up @@ -511,9 +520,10 @@ public void testSuspendALot() throws Exception {
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
tester.sendMessage("{\"id\":3,\"method\":\"Debugger.setAsyncCallStackDepth\",\"params\":{\"maxDepth\":1}}");
tester.sendMessage("{\"id\":4,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
tester.receiveMessages(
"{\"result\":{},\"id\":1}\n" +
"{\"result\":{},\"id\":2}\n" +
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
"{\"result\":{},\"id\":4}\n" +
"{\"method\":\"Runtime.executionContextCreated\",\"params\":{\"context\":{\"origin\":\"\",\"name\":\"test\",\"id\":1}}}\n"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public class InspectorMessageTransportTest extends EnginesGCedTest {
private static final String[] MESSAGES_TO_BACKEND;
private static final String[] MESSAGES_TO_CLIENT = {
"{\"result\":{},\"id\":5}",
"{\"result\":{},\"id\":6}",
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.",
"{\"result\":{},\"id\":7}",
"{\"result\":{},\"id\":8}",
"{\"result\":{},\"id\":20}",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ public void testThisReceiver1() throws Exception {
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
tester.receiveMessages(
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
Expand Down Expand Up @@ -98,7 +99,8 @@ public void testThisReceiver2() throws Exception {
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
tester.receiveMessages(
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
Expand Down Expand Up @@ -154,7 +156,8 @@ private static void checkMultipleReceivers(String receiver, String sourceHash) t
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
tester.receiveMessages(
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
Expand Down Expand Up @@ -211,7 +214,8 @@ public void testOtherReceiver1() throws Exception {
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
tester.receiveMessages(
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,9 @@ public void testReadWithSideEffects() throws Exception {
InspectorTester tester = InspectorTester.start(true);
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertTrue(tester.compareReceivedMessages(
tester.receiveMessages(
"{\"result\":{},\"id\":1}\n" +
"{\"result\":{},\"id\":2}\n"));
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@ public void testNotReadableVariables() throws Exception {
InspectorTester tester = InspectorTester.start(true);
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertTrue(tester.compareReceivedMessages(
tester.receiveMessages(
"{\"result\":{},\"id\":1}\n" +
"{\"result\":{},\"id\":2}\n"));
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");
assertTrue(tester.compareReceivedMessages(
"{\"result\":{},\"id\":3}\n" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,8 @@ public void testSourcePath() throws Exception {
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
tester.receiveMessages(
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");

// @formatter:off The default formatting makes unnecessarily big indents and illogical line breaks
Expand Down Expand Up @@ -183,7 +184,8 @@ public void testNonExistingSourcePath() throws Exception {
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
tester.receiveMessages(
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");

String resolvedPath = new File("relative/path").toPath().toAbsolutePath().toUri().toString();
Expand Down Expand Up @@ -305,7 +307,8 @@ private static void testBreakpoints(int sectionLine, int sectionColumn, int bpLi
tester.sendMessage("{\"id\":1,\"method\":\"Runtime.enable\"}");
assertEquals("{\"result\":{},\"id\":1}", tester.getMessages(true).trim());
tester.sendMessage("{\"id\":2,\"method\":\"Debugger.enable\"}");
assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
tester.receiveMessages(
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");

// @formatter:off The default formatting makes unnecessarily big indents and illogical line breaks
Expand Down Expand Up @@ -383,7 +386,8 @@ public void testEagerSourceLoad() throws Exception {
assertTrue(tester.compareReceivedMessages(
"{\"method\":\"Debugger.scriptParsed\",\"params\":{\"endLine\":3,\"scriptId\":\"1\",\"endColumn\":0,\"startColumn\":0,\"startLine\":0,\"length\":" + 180 +
",\"executionContextId\":1,\"url\":\"" + prolog2URI + "\",\"hash\":\"ddbb5c60e6d93544f2f9afd9f84696c2ffd09768\"}}\n"));
assertEquals("{\"result\":{},\"id\":2}", tester.getMessages(true).trim());
tester.receiveMessages(
"{\"result\":{\"debuggerId\":\"UniqueDebuggerId.", "},\"id\":2}\n");
tester.sendMessage("{\"id\":3,\"method\":\"Runtime.runIfWaitingForDebugger\"}");

// @formatter:off The default formatting makes unnecessarily big indents and illogical line breaks
Expand Down
Loading

0 comments on commit db40984

Please sign in to comment.