1. Extended the gdb-remote communication related classes with disk file/directory completion functions; 2. Added two common completion functions RemoteDiskFiles and RemoteDiskDirectories based on the functions above; 3. Added completion for these commands: A. platform get-file <remote-file> <local-file>; B. platform put-file <local-file> <remote-file>; C. platform get-size <remote-file>; D. platform settings -w <remote-dir>; E. platform open file <remote-file>. 4. Added related tests for client and server; 5. Updated docs/lldb-platform-packets.txt. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D85284
30 lines
1.2 KiB
Python
30 lines
1.2 KiB
Python
from gdbclientutils import *
|
|
|
|
class TestGDBRemoteDiskFileCompletion(GDBRemoteTestBase):
|
|
|
|
def test_autocomplete_request(self):
|
|
"""Test remote disk completion on remote-gdb-server plugin"""
|
|
|
|
class Responder(MockGDBServerResponder):
|
|
def qPathComplete(self):
|
|
return "M{},{}".format(
|
|
"test".encode().hex(),
|
|
"123".encode().hex()
|
|
)
|
|
|
|
self.server.responder = Responder()
|
|
|
|
try:
|
|
self.runCmd("platform select remote-gdb-server")
|
|
self.runCmd("platform connect connect://localhost:%d" %
|
|
self.server.port)
|
|
self.assertTrue(self.dbg.GetSelectedPlatform().IsConnected())
|
|
|
|
self.complete_from_to('platform get-size ', ['test', '123'])
|
|
self.complete_from_to('platform get-file ', ['test', '123'])
|
|
self.complete_from_to('platform put-file foo ', ['test', '123'])
|
|
self.complete_from_to('platform file open ', ['test', '123'])
|
|
self.complete_from_to('platform settings -w ', ['test', '123'])
|
|
finally:
|
|
self.dbg.GetSelectedPlatform().DisconnectRemote()
|