[Lldb-commits] [lldb] 0cb748b - [lldb][test] Refactor no target XML test

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Thu Jun 27 03:40:16 PDT 2024


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)


        


More information about the lldb-commits mailing list