1import gdbremote_testcase 2from lldbsuite.test.decorators import * 3from lldbsuite.test.lldbtest import * 4from lldbsuite.test import lldbutil 5 6class TestGdbRemoteThreadName(gdbremote_testcase.GdbRemoteTestCaseBase): 7 8 def run_and_check_name(self, expected_name): 9 self.test_sequence.add_log_lines(["read packet: $vCont;c#a8", 10 {"direction": "send", 11 "regex": 12 r"^\$T([0-9a-fA-F]{2})([^#]+)#[0-9a-fA-F]{2}$", 13 "capture": { 14 1: "signal", 15 2: "key_vals_text"}}, 16 ], 17 True) 18 19 context = self.expect_gdbremote_sequence() 20 self.assertIsNotNone(context) 21 22 sigint = lldbutil.get_signal_number("SIGINT") 23 self.assertEqual(sigint, int(context.get("signal"), 16)) 24 kv_dict = self.parse_key_val_dict(context.get("key_vals_text")) 25 self.assertEqual(expected_name, kv_dict.get("name")) 26 27 @skipIfWindows # the test is not updated for Windows. 28 def test(self): 29 """ Make sure lldb-server can retrieve inferior thread name""" 30 self.build() 31 self.set_inferior_startup_launch() 32 procs = self.prep_debug_monitor_and_inferior() 33 34 self.run_and_check_name("hello world") 35 self.run_and_check_name("goodbye world") 36