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