Author: David Spickett Date: 2024-06-27T10:39:56Z New Revision: 0cb748b9ba7cea72bee1bcf7c94f26c646053bb1
URL: https://github.com/llvm/llvm-project/commit/0cb748b9ba7cea72bee1bcf7c94f26c646053bb1 DIFF: https://github.com/llvm/llvm-project/commit/0cb748b9ba7cea72bee1bcf7c94f26c646053bb1.diff LOG: [lldb][test] Refactor no target XML test To make it more easy to check a bug later. Added: Modified: lldb/test/API/functionalities/gdb_remote_client/TestGDBServerNoTargetXML.py Removed: ################################################################################ diff --git a/lldb/test/API/functionalities/gdb_remote_client/TestGDBServerNoTargetXML.py b/lldb/test/API/functionalities/gdb_remote_client/TestGDBServerNoTargetXML.py index 5f6ed7d537af1..8c5bad007f569 100644 --- a/lldb/test/API/functionalities/gdb_remote_client/TestGDBServerNoTargetXML.py +++ b/lldb/test/API/functionalities/gdb_remote_client/TestGDBServerNoTargetXML.py @@ -1,3 +1,12 @@ +""" +Check that lldb falls back to default register layouts when the remote provides +no target XML. + +GPRS are passed to the responder to create register data to send back to lldb. +Registers in SUPPL are virtual registers based on those general ones. The tests +pass __file__ to FileCheck so any prefixes in this Python file will be checked. +""" + import lldb from lldbsuite.test.lldbtest import * from lldbsuite.test.decorators import * @@ -6,14 +15,29 @@ import binascii - -class TestGDBServerTargetXML(GDBRemoteTestBase): +class MyResponder(MockGDBServerResponder): @staticmethod def filecheck_to_blob(fc): for l in fc.strip().splitlines(): val = l.split("0x")[1] yield binascii.b2a_hex(bytes(reversed(binascii.a2b_hex(val)))).decode() + def __init__(self, reg_data, halt_reason): + super().__init__() + self.reg_data = "".join(self.filecheck_to_blob(reg_data)) + self.halt_reason = halt_reason + + def readRegister(self, regnum): + return "" + + def readRegisters(self): + return self.reg_data + + def haltReason(self): + return self.halt_reason + + +class TestGDBServerTargetXML(GDBRemoteTestBase): @skipIfRemote @skipIfLLVMTargetMissing("X86") def test_x86_64_regs(self): @@ -100,19 +124,10 @@ def test_x86_64_regs(self): CHECK-AMD64-DAG: r15l = 0xf1 """ - class MyResponder(MockGDBServerResponder): - reg_data = "".join(self.filecheck_to_blob(GPRS)) - - def readRegister(self, regnum): - return "" - - def readRegisters(self): - return self.reg_data - - def haltReason(self): - return "T02thread:1ff0d;threads:1ff0d;thread-pcs:000000010001bc00;07:0102030405060708;10:1112131415161718;" - - self.server.responder = MyResponder() + self.server.responder = MyResponder( + GPRS, + "T02thread:1ff0d;threads:1ff0d;thread-pcs:000000010001bc00;07:0102030405060708;10:1112131415161718;", + ) target = self.createTarget("basic_eh_frame.yaml") process = self.connect(target) @@ -216,19 +231,10 @@ def test_aarch64_regs(self): CHECK-AARCH64-DAG: w31 = 0x23242526 """ - class MyResponder(MockGDBServerResponder): - reg_data = "".join(self.filecheck_to_blob(GPRS)) - - def readRegister(self, regnum): - return "" - - def readRegisters(self): - return self.reg_data - - def haltReason(self): - return "T02thread:1ff0d;threads:1ff0d;thread-pcs:000000010001bc00;07:0102030405060708;10:1112131415161718;" - - self.server.responder = MyResponder() + self.server.responder = MyResponder( + GPRS, + "T02thread:1ff0d;threads:1ff0d;thread-pcs:000000010001bc00;07:0102030405060708;10:1112131415161718;", + ) target = self.createTarget("basic_eh_frame-aarch64.yaml") process = self.connect(target) @@ -300,19 +306,10 @@ def test_i386_regs(self): CHECK-I386-DAG: dil = 0x71 """ - class MyResponder(MockGDBServerResponder): - reg_data = "".join(self.filecheck_to_blob(GPRS)) - - def readRegister(self, regnum): - return "" - - def readRegisters(self): - return self.reg_data - - def haltReason(self): - return "T02thread:1ff0d;threads:1ff0d;thread-pcs:000000010001bc00;07:0102030405060708;10:1112131415161718;" - - self.server.responder = MyResponder() + self.server.responder = MyResponder( + GPRS, + "T02thread:1ff0d;threads:1ff0d;thread-pcs:000000010001bc00;07:0102030405060708;10:1112131415161718;", + ) target = self.createTarget("basic_eh_frame-i386.yaml") process = self.connect(target) _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits