[Lldb-commits] [lldb] c7dddaa - [lldb/Reproducers] Update GDB remote client tests for passive replay
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Tue May 19 13:08:01 PDT 2020
Author: Jonas Devlieghere
Date: 2020-05-19T13:07:50-07:00
New Revision: c7dddaa89ff17d2b191bd70de5a01712590b317d
URL: https://github.com/llvm/llvm-project/commit/c7dddaa89ff17d2b191bd70de5a01712590b317d
DIFF: https://github.com/llvm/llvm-project/commit/c7dddaa89ff17d2b191bd70de5a01712590b317d.diff
LOG: [lldb/Reproducers] Update GDB remote client tests for passive replay
Tests that check the state of the server don't work when replayed
because the replay server replies to requests.
Added:
Modified:
lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py
lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteLoad.py
lldb/test/API/functionalities/gdb_remote_client/TestJLink6Armv7RegisterDefinition.py
Removed:
################################################################################
diff --git a/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py b/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py
index 0fe3d6290f42..053183b5b5b7 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py
@@ -11,6 +11,7 @@ class gPacketResponder(MockGDBServerResponder):
def readRegisters(self):
return '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
+ @skipIfReproducer # Packet log is not populated during replay.
def test_connect(self):
"""Test connecting to a remote gdb server"""
target = self.createTarget("a.yaml")
@@ -68,11 +69,12 @@ def A(self, packet):
None, 0, True, error)
self.assertEquals("'A' packet returned an error: 71", error.GetCString())
+ @skipIfReproducer # Packet log is not populated during replay.
def test_read_registers_using_g_packets(self):
"""Test reading registers using 'g' packets (default behavior)"""
self.dbg.HandleCommand(
"settings set plugin.process.gdb-remote.use-g-packet-for-reading true")
- self.addTearDownHook(lambda:
+ self.addTearDownHook(lambda:
self.runCmd("settings set plugin.process.gdb-remote.use-g-packet-for-reading false"))
self.server.responder = self.gPacketResponder()
target = self.createTarget("a.yaml")
@@ -85,6 +87,7 @@ def test_read_registers_using_g_packets(self):
self.assertEquals(
0, len([p for p in self.server.responder.packetLog if p.startswith("p")]))
+ @skipIfReproducer # Packet log is not populated during replay.
def test_read_registers_using_p_packets(self):
"""Test reading registers using 'p' packets"""
self.dbg.HandleCommand(
@@ -97,6 +100,7 @@ def test_read_registers_using_p_packets(self):
self.assertGreater(
len([p for p in self.server.responder.packetLog if p.startswith("p")]), 0)
+ @skipIfReproducer # Packet log is not populated during replay.
def test_write_registers_using_P_packets(self):
"""Test writing registers using 'P' packets (default behavior)"""
self.server.responder = self.gPacketResponder()
@@ -109,6 +113,7 @@ def test_write_registers_using_P_packets(self):
self.assertGreater(
len([p for p in self.server.responder.packetLog if p.startswith("P")]), 0)
+ @skipIfReproducer # Packet log is not populated during replay.
def test_write_registers_using_G_packets(self):
"""Test writing registers using 'G' packets"""
diff --git a/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteLoad.py b/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteLoad.py
index 59a11d45737c..f8cff3900f4b 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteLoad.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteLoad.py
@@ -17,6 +17,7 @@ def test_module_load_address(self):
self.assertTrue(address.IsValid())
self.assertEqual(".data", address.GetSection().GetName())
+ @skipIfReproducer # Packet log is not populated during replay.
def test_ram_load(self):
"""Test loading an object file to a target's ram"""
target = self.createTarget("a.yaml")
@@ -28,6 +29,7 @@ def test_ram_load(self):
])
@skipIfXmlSupportMissing
+ @skipIfReproducer # Packet log is not populated during replay.
def test_flash_load(self):
"""Test loading an object file to a target's flash memory"""
diff --git a/lldb/test/API/functionalities/gdb_remote_client/TestJLink6Armv7RegisterDefinition.py b/lldb/test/API/functionalities/gdb_remote_client/TestJLink6Armv7RegisterDefinition.py
index f0113fd9908b..754ed44ce8d8 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestJLink6Armv7RegisterDefinition.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestJLink6Armv7RegisterDefinition.py
@@ -126,7 +126,7 @@ def readRegisters(self):
## the J-Link accepts a register write packet with just the GPRs
## defined.
def writeRegisters(self, registers_hex):
- # Check that lldb returns the full 704 hex-byte register context,
+ # Check that lldb returns the full 704 hex-byte register context,
# or the 136 hex-byte general purpose register reg ctx.
if len(registers_hex) != 704 and len(register_hex) != 136:
return "E06"
@@ -141,7 +141,7 @@ def haltReason(self):
def qfThreadInfo(self):
return "mdead"
-
+
def qC(self):
return ""
@@ -184,13 +184,15 @@ def QListThreadsInStopReply(self):
err = msp_valobj.GetError()
self.assertTrue(err.Fail(), "lldb should not be able to fetch the msp register")
- val = b'\x11\x22\x33\x44'
- error = lldb.SBError()
- data = lldb.SBData()
- data.SetData(error, val, lldb.eByteOrderBig, 4)
- self.assertEqual(r1_valobj.SetData(data, error), True)
- self.assertTrue(error.Success())
-
- r1_valobj = process.GetThreadAtIndex(0).GetFrameAtIndex(0).FindRegister("r1")
- self.assertEqual(r1_valobj.GetValueAsUnsigned(), 0x11223344)
+ # Reproducers don't support SetData (yet) because it takes a void*.
+ if not configuration.is_reproducer():
+ val = b'\x11\x22\x33\x44'
+ error = lldb.SBError()
+ data = lldb.SBData()
+ data.SetData(error, val, lldb.eByteOrderBig, 4)
+ self.assertEqual(r1_valobj.SetData(data, error), True)
+ self.assertTrue(error.Success())
+
+ r1_valobj = process.GetThreadAtIndex(0).GetFrameAtIndex(0).FindRegister("r1")
+ self.assertEqual(r1_valobj.GetValueAsUnsigned(), 0x11223344)
More information about the lldb-commits
mailing list