brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 5aa790b Raw
52 lines · python
1import gdbremote_testcase2import lldbgdbserverutils3from lldbsuite.test.decorators import *4from lldbsuite.test.lldbtest import *5from lldbsuite.test import lldbutil6 7 8class TestGdbRemoteAttach(gdbremote_testcase.GdbRemoteTestCaseBase):9    def test_attach_with_vAttach(self):10        self.build()11        self.set_inferior_startup_attach_manually()12 13        # Start the inferior, start the debug monitor, nothing is attached yet.14        procs = self.prep_debug_monitor_and_inferior(inferior_args=["sleep:60"])15        self.assertIsNotNone(procs)16 17        # Make sure the target process has been launched.18        inferior = procs.get("inferior")19        self.assertIsNotNone(inferior)20        self.assertGreater(inferior.pid, 0)21        self.assertTrue(lldbgdbserverutils.process_is_running(inferior.pid, True))22 23        # Add attach packets.24        self.test_sequence.add_log_lines(25            [26                # Do the attach.27                "read packet: $vAttach;{:x}#00".format(inferior.pid),28                # Expect a stop notification from the attach.29                {30                    "direction": "send",31                    "regex": r"^\$T([0-9a-fA-F]{2})[^#]*#[0-9a-fA-F]{2}$",32                    "capture": {1: "stop_signal_hex"},33                },34            ],35            True,36        )37        self.add_process_info_collection_packets()38 39        # Run the stream40        context = self.expect_gdbremote_sequence()41        self.assertIsNotNone(context)42 43        # Gather process info response44        process_info = self.parse_process_info_response(context)45        self.assertIsNotNone(process_info)46 47        # Ensure the process id matches what we expected.48        pid_text = process_info.get("pid", None)49        self.assertIsNotNone(pid_text)50        reported_pid = int(pid_text, base=16)51        self.assertEqual(reported_pid, inferior.pid)52