[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.
This commit is contained in:
Jonas Devlieghere 2020-05-19 13:07:05 -07:00
parent e42e5e4d0f
commit c7dddaa89f
3 changed files with 20 additions and 11 deletions

View File

@ -11,6 +11,7 @@ class TestGDBRemoteClient(GDBRemoteTestBase):
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,6 +69,7 @@ class TestGDBRemoteClient(GDBRemoteTestBase):
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(
@ -85,6 +87,7 @@ class TestGDBRemoteClient(GDBRemoteTestBase):
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 @@ class TestGDBRemoteClient(GDBRemoteTestBase):
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 @@ class TestGDBRemoteClient(GDBRemoteTestBase):
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"""

View File

@ -17,6 +17,7 @@ class TestGDBRemoteLoad(GDBRemoteTestBase):
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 @@ class TestGDBRemoteLoad(GDBRemoteTestBase):
])
@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"""

View File

@ -184,6 +184,8 @@ class TestJLink6Armv7RegisterDefinition(GDBRemoteTestBase):
err = msp_valobj.GetError()
self.assertTrue(err.Fail(), "lldb should not be able to fetch the msp register")
# 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()