1""" 2Test lldb-dap start-debugging reverse requests. 3""" 4 5 6from lldbsuite.test.decorators import * 7from lldbsuite.test.lldbtest import * 8import lldbdap_testcase 9 10 11class TestDAP_startDebugging(lldbdap_testcase.DAPTestCaseBase): 12 def test_startDebugging(self): 13 """ 14 Tests the "startDebugging" reverse request. It makes sure that the IDE can 15 start a child debug session. 16 """ 17 program = self.getBuildArtifact("a.out") 18 source = "main.c" 19 self.build_and_launch(program) 20 21 breakpoint_line = line_number(source, "// breakpoint") 22 23 self.set_source_breakpoints(source, [breakpoint_line]) 24 self.continue_to_next_stop() 25 self.dap_server.request_evaluate( 26 "`lldb-dap start-debugging attach '{\"pid\":321}'", context="repl" 27 ) 28 29 self.continue_to_exit() 30 31 self.assertEqual( 32 len(self.dap_server.reverse_requests), 33 1, 34 "make sure we got a reverse request", 35 ) 36 37 request = self.dap_server.reverse_requests[0] 38 self.assertEqual(request["arguments"]["configuration"]["pid"], 321) 39 self.assertEqual(request["arguments"]["request"], "attach") 40