brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 3aeb878 Raw
59 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 TestPlatformAttach(GDBRemoteTestBase):9    @skipIfRemote10    @skipIfWindows11    def test_attach(self):12        """Test attaching by name"""13 14        class MyPlatformResponder(MockGDBServerResponder):15            def __init__(self, port):16                MockGDBServerResponder.__init__(self)17                self.port = port18 19            def qLaunchGDBServer(self, _):20                return "pid:1337;port:{};".format(self.port)21 22            def qfProcessInfo(self, packet):23                return "pid:95117;name:666f6f;"24 25        class MyGDBResponder(MockGDBServerResponder):26            def __init__(self):27                MockGDBServerResponder.__init__(self)28 29            def vAttach(self, _):30                return "OK"31 32        self.server.responder = MyGDBResponder()33        port = self.server._socket._server_socket.getsockname()[1]34 35        platform_socket = TCPServerSocket()36        platform_server = MockGDBServer(platform_socket)37        platform_server.responder = MyPlatformResponder(port)38        platform_server.start()39 40        error = lldb.SBError()41        platform = lldb.SBPlatform("remote-linux")42        self.dbg.SetSelectedPlatform(platform)43 44        error = platform.ConnectRemote(45            lldb.SBPlatformConnectOptions(platform_server.get_connect_url())46        )47        self.assertSuccess(error)48        self.assertTrue(platform.IsConnected())49 50        attach_info = lldb.SBAttachInfo()51        attach_info.SetExecutable("foo")52 53        target = lldb.SBTarget()54        process = platform.Attach(attach_info, self.dbg, target, error)55        self.assertSuccess(error)56        self.assertEqual(process.GetProcessID(), 95117)57 58        platform.DisconnectRemote()59