| import gdbremote_testcase | |
| from lldbsuite.test.decorators import * | |
| from lldbsuite.test.lldbtest import * | |
| from lldbsuite.test import lldbutil | |
| class TestGdbRemoteThreadName(gdbremote_testcase.GdbRemoteTestCaseBase): | |
| def run_and_check_name(self, expected_name): | |
| self.test_sequence.add_log_lines( | |
| [ | |
| "read packet: $vCont;c#a8", | |
| { | |
| "direction": "send", | |
| "regex": r"^\$T([0-9a-fA-F]{2})([^#]+)#[0-9a-fA-F]{2}$", | |
| "capture": {1: "signal", 2: "key_vals_text"}, | |
| }, | |
| ], | |
| True, | |
| ) | |
| context = self.expect_gdbremote_sequence() | |
| self.assertIsNotNone(context) | |
| sigint = lldbutil.get_signal_number("SIGINT") | |
| self.assertEqual(sigint, int(context.get("signal"), 16)) | |
| kv_dict = self.parse_key_val_dict(context.get("key_vals_text")) | |
| self.assertEqual(expected_name, kv_dict.get("name")) | |
| @skipIfWindows # the test is not updated for Windows. | |
| def test(self): | |
| """Make sure lldb-server can retrieve inferior thread name""" | |
| self.build() | |
| self.set_inferior_startup_launch() | |
| procs = self.prep_debug_monitor_and_inferior() | |
| self.run_and_check_name("hello world") | |
| self.run_and_check_name("goodbye world") |