78 lines · python
1import lldb2from lldbsuite.test.lldbtest import *3from lldbsuite.test.decorators import *4from lldbsuite.test.gdbclientutils import *5from lldbsuite.test.lldbgdbclient import GDBRemoteTestBase6 7 8class TestContinue(GDBRemoteTestBase):9 class BaseResponder(MockGDBServerResponder):10 def qSupported(self, client_supported):11 return "PacketSize=3fff;QStartNoAckMode+;multiprocess+"12 13 def qfThreadInfo(self):14 return "mp400.401"15 16 def haltReason(self):17 return "S13"18 19 def cont(self):20 return "W01"21 22 def other(self, packet):23 if packet == "vCont?":24 return "vCont;c;C;s;S"25 if packet.startswith("vCont;"):26 return "W00"27 return ""28 29 def test_continue_no_multiprocess(self):30 class MyResponder(self.BaseResponder):31 def qSupported(self, client_supported):32 return "PacketSize=3fff;QStartNoAckMode+"33 34 def qfThreadInfo(self):35 return "m401"36 37 self.server.responder = MyResponder()38 self.runCmd("platform select remote-linux")39 target = self.createTarget("a.yaml")40 process = self.connect(target)41 lldbutil.expect_state_changes(42 self, self.dbg.GetListener(), process, [lldb.eStateExited]43 )44 self.assertPacketLogReceived(["vCont;C13:401"])45 46 def test_continue_no_vCont(self):47 class MyResponder(self.BaseResponder):48 def qSupported(self, client_supported):49 return "PacketSize=3fff;QStartNoAckMode+"50 51 def qfThreadInfo(self):52 return "m401"53 54 def other(self, packet):55 return ""56 57 self.server.responder = MyResponder()58 self.runCmd("platform select remote-linux")59 target = self.createTarget("a.yaml")60 process = self.connect(target)61 lldbutil.expect_state_changes(62 self, self.dbg.GetListener(), process, [lldb.eStateExited]63 )64 self.assertPacketLogReceived(["Hc401", "C13"])65 66 def test_continue_multiprocess(self):67 class MyResponder(self.BaseResponder):68 pass69 70 self.server.responder = MyResponder()71 self.runCmd("platform select remote-linux")72 target = self.createTarget("a.yaml")73 process = self.connect(target)74 lldbutil.expect_state_changes(75 self, self.dbg.GetListener(), process, [lldb.eStateExited]76 )77 self.assertPacketLogReceived(["vCont;C13:p400.401"])78