xref: /llvm-project/lldb/test/API/tools/lldb-dap/startDebugging/TestDAP_startDebugging.py (revision 224f62de9e34d537b1fd282b47b773b04bea34f1)
101263c6cSJonas Devlieghere"""
2*224f62deSJohn HarrisonTest lldb-dap start-debugging reverse requests.
301263c6cSJonas Devlieghere"""
401263c6cSJonas Devlieghere
501263c6cSJonas Devlieghere
601263c6cSJonas Devliegherefrom lldbsuite.test.decorators import *
701263c6cSJonas Devliegherefrom lldbsuite.test.lldbtest import *
801263c6cSJonas Devlieghereimport lldbdap_testcase
901263c6cSJonas Devlieghere
1001263c6cSJonas Devlieghere
1101263c6cSJonas Devlieghereclass TestDAP_startDebugging(lldbdap_testcase.DAPTestCaseBase):
1201263c6cSJonas Devlieghere    def test_startDebugging(self):
1301263c6cSJonas Devlieghere        """
1401263c6cSJonas Devlieghere        Tests the "startDebugging" reverse request. It makes sure that the IDE can
1501263c6cSJonas Devlieghere        start a child debug session.
1601263c6cSJonas Devlieghere        """
1701263c6cSJonas Devlieghere        program = self.getBuildArtifact("a.out")
1801263c6cSJonas Devlieghere        source = "main.c"
1901263c6cSJonas Devlieghere        self.build_and_launch(program)
2001263c6cSJonas Devlieghere
2101263c6cSJonas Devlieghere        breakpoint_line = line_number(source, "// breakpoint")
2201263c6cSJonas Devlieghere
2301263c6cSJonas Devlieghere        self.set_source_breakpoints(source, [breakpoint_line])
2401263c6cSJonas Devlieghere        self.continue_to_next_stop()
2501263c6cSJonas Devlieghere        self.dap_server.request_evaluate(
26*224f62deSJohn Harrison            "`lldb-dap start-debugging attach '{\"pid\":321}'", context="repl"
2701263c6cSJonas Devlieghere        )
2801263c6cSJonas Devlieghere
2901263c6cSJonas Devlieghere        self.continue_to_exit()
3001263c6cSJonas Devlieghere
3101263c6cSJonas Devlieghere        self.assertEqual(
3201263c6cSJonas Devlieghere            len(self.dap_server.reverse_requests),
3301263c6cSJonas Devlieghere            1,
3401263c6cSJonas Devlieghere            "make sure we got a reverse request",
3501263c6cSJonas Devlieghere        )
3601263c6cSJonas Devlieghere
3701263c6cSJonas Devlieghere        request = self.dap_server.reverse_requests[0]
3801263c6cSJonas Devlieghere        self.assertEqual(request["arguments"]["configuration"]["pid"], 321)
3901263c6cSJonas Devlieghere        self.assertEqual(request["arguments"]["request"], "attach")
40