xref: /llvm-project/lldb/test/API/tools/lldb-dap/startDebugging/TestDAP_startDebugging.py (revision 224f62de9e34d537b1fd282b47b773b04bea34f1)
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