| """ |
| Test lldb-dap start-debugging reverse requests. |
| """ |
| |
| from lldbsuite.test.decorators import * |
| from lldbsuite.test.lldbtest import * |
| import lldbdap_testcase |
| |
| |
| class TestDAP_startDebugging(lldbdap_testcase.DAPTestCaseBase): |
| def test_startDebugging(self): |
| """ |
| Tests the "startDebugging" reverse request. It makes sure that the IDE can |
| start a child debug session. |
| """ |
| program = self.getBuildArtifact("a.out") |
| source = "main.c" |
| self.build_and_launch(program) |
| |
| breakpoint_line = line_number(source, "// breakpoint") |
| |
| self.set_source_breakpoints(source, [breakpoint_line]) |
| self.continue_to_next_stop() |
| self.dap_server.request_evaluate( |
| "`lldb-dap start-debugging attach '{\"pid\":321}'", context="repl" |
| ) |
| |
| self.continue_to_exit() |
| |
| self.assertEqual( |
| len(self.dap_server.reverse_requests), |
| 1, |
| "make sure we got a reverse request", |
| ) |
| |
| request = self.dap_server.reverse_requests[0] |
| self.assertEqual(request["arguments"]["configuration"]["pid"], 321) |
| self.assertEqual(request["arguments"]["request"], "attach") |