| import time | |
| import lldb | |
| from lldbsuite.test.lldbtest import * | |
| from lldbsuite.test.decorators import * | |
| from lldbsuite.test.gdbclientutils import * | |
| from lldbsuite.test.lldbgdbclient import GDBRemoteTestBase | |
| class TestPacketTestDelay(GDBRemoteTestBase): | |
| NO_DEBUG_INFO_TESTCASE = True | |
| def test_packet_test_delay(self): | |
| """Verify that packet-test-delay inserts a delay before each sent packet.""" | |
| # 1000ms should be long enough that this test doesn't pass by | |
| # accident even on slow machines, but not too long to waste test | |
| # suite time. | |
| DELAY_MS = 1000 | |
| class MyResponder(MockGDBServerResponder): | |
| def x(self, addr, length): | |
| return "foobar" | |
| self.server.responder = MyResponder() | |
| target = self.dbg.CreateTargetWithFileAndTargetTriple("", "x86_64-pc-linux") | |
| process = self.connect(target) | |
| error = lldb.SBError() | |
| start = time.time() | |
| self.runCmd( | |
| "settings set plugin.process.gdb-remote.packet-test-delay %d" % DELAY_MS | |
| ) | |
| # Send a single dummy packet so we can observe the delay. | |
| process.ReadMemory(0x1000, 10, error) | |
| elapsed_ms = (time.time() - start) * 1000 | |
| self.assertGreaterEqual( | |
| elapsed_ms, DELAY_MS, "Packet was sent faster than the set test delay?" | |
| ) |