| import lldb |
| from lldbsuite.test.lldbtest import * |
| from lldbsuite.test.decorators import * |
| from lldbsuite.test.gdbclientutils import * |
| from lldbsuite.test.lldbgdbclient import GDBRemoteTestBase |
| |
| |
| class TestContinue(GDBRemoteTestBase): |
| class BaseResponder(MockGDBServerResponder): |
| def qSupported(self, client_supported): |
| return "PacketSize=3fff;QStartNoAckMode+;multiprocess+" |
| |
| def qfThreadInfo(self): |
| return "mp400.401" |
| |
| def haltReason(self): |
| return "S13" |
| |
| def cont(self): |
| return "W01" |
| |
| def other(self, packet): |
| if packet == "vCont?": |
| return "vCont;c;C;s;S" |
| if packet.startswith("vCont;"): |
| return "W00" |
| return "" |
| |
| def test_continue_no_multiprocess(self): |
| class MyResponder(self.BaseResponder): |
| def qSupported(self, client_supported): |
| return "PacketSize=3fff;QStartNoAckMode+" |
| |
| def qfThreadInfo(self): |
| return "m401" |
| |
| self.server.responder = MyResponder() |
| self.runCmd("platform select remote-linux") |
| target = self.createTarget("a.yaml") |
| process = self.connect(target) |
| lldbutil.expect_state_changes( |
| self, self.dbg.GetListener(), process, [lldb.eStateExited] |
| ) |
| self.assertPacketLogContains(["vCont;C13:401"]) |
| |
| def test_continue_no_vCont(self): |
| class MyResponder(self.BaseResponder): |
| def qSupported(self, client_supported): |
| return "PacketSize=3fff;QStartNoAckMode+" |
| |
| def qfThreadInfo(self): |
| return "m401" |
| |
| def other(self, packet): |
| return "" |
| |
| self.server.responder = MyResponder() |
| self.runCmd("platform select remote-linux") |
| target = self.createTarget("a.yaml") |
| process = self.connect(target) |
| lldbutil.expect_state_changes( |
| self, self.dbg.GetListener(), process, [lldb.eStateExited] |
| ) |
| self.assertPacketLogContains(["Hc401", "C13"]) |
| |
| def test_continue_multiprocess(self): |
| class MyResponder(self.BaseResponder): |
| pass |
| |
| self.server.responder = MyResponder() |
| self.runCmd("platform select remote-linux") |
| target = self.createTarget("a.yaml") |
| process = self.connect(target) |
| lldbutil.expect_state_changes( |
| self, self.dbg.GetListener(), process, [lldb.eStateExited] |
| ) |
| self.assertPacketLogContains(["vCont;C13:p400.401"]) |