[Lldb-commits] [lldb] c240d2b - [lldb] [test] Move "platform connect" logic into a common class
Michał Górny via lldb-commits
lldb-commits at lists.llvm.org
Fri Sep 10 05:08:41 PDT 2021
Author: Michał Górny
Date: 2021-09-10T14:08:35+02:00
New Revision: c240d2bb06dabe8fb3a1c2da978fbdc9f642de73
URL: https://github.com/llvm/llvm-project/commit/c240d2bb06dabe8fb3a1c2da978fbdc9f642de73
DIFF: https://github.com/llvm/llvm-project/commit/c240d2bb06dabe8fb3a1c2da978fbdc9f642de73.diff
LOG: [lldb] [test] Move "platform connect" logic into a common class
Create a common GDBPlatformClientTestBase class and move the platform
select/connect logic there to reduce duplication.
Differential Revision: https://reviews.llvm.org/D109585
Added:
Modified:
lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteDiskFileCompletion.py
lldb/test/API/functionalities/gdb_remote_client/TestGDBRemotePlatformFile.py
lldb/test/API/functionalities/gdb_remote_client/gdbclientutils.py
Removed:
################################################################################
diff --git a/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteDiskFileCompletion.py b/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteDiskFileCompletion.py
index c0afce00a4cf1..8109caf3d7310 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteDiskFileCompletion.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteDiskFileCompletion.py
@@ -1,6 +1,6 @@
from gdbclientutils import *
-class TestGDBRemoteDiskFileCompletion(GDBRemoteTestBase):
+class TestGDBRemoteDiskFileCompletion(GDBPlatformClientTestBase):
def test_autocomplete_request(self):
"""Test remote disk completion on remote-gdb-server plugin"""
@@ -14,16 +14,8 @@ def qPathComplete(self):
self.server.responder = Responder()
- try:
- self.runCmd("platform select remote-gdb-server")
- self.runCmd("platform connect connect://" +
- self.server.get_connect_address())
- 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()
+ 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'])
diff --git a/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemotePlatformFile.py b/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemotePlatformFile.py
index fcc2579266806..d5475986bb57d 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemotePlatformFile.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestGDBRemotePlatformFile.py
@@ -1,6 +1,6 @@
from gdbclientutils import *
-class TestGDBRemotePlatformFile(GDBRemoteTestBase):
+class TestGDBRemotePlatformFile(GDBPlatformClientTestBase):
def test_file(self):
"""Test mock operations on a remote file"""
@@ -19,28 +19,20 @@ def vFile(self, packet):
self.server.responder = Responder()
- try:
- self.runCmd("platform select remote-gdb-server")
- self.runCmd("platform connect connect://" +
- self.server.get_connect_address())
- self.assertTrue(self.dbg.GetSelectedPlatform().IsConnected())
-
- self.match("platform file open /some/file.txt -v 0755",
- [r"File Descriptor = 16"])
- self.match("platform file read 16 -o 11 -c 13",
- [r"Return = 11\nData = \"frobnicator\""])
- self.match("platform file write 16 -o 11 -d teststring",
- [r"Return = 10"])
- self.match("platform file close 16",
- [r"file 16 closed."])
- self.assertPacketLogContains([
- "vFile:open:2f736f6d652f66696c652e747874,00000202,000001ed",
- "vFile:pread:10,d,b",
- "vFile:pwrite:10,b,teststring",
- "vFile:close:10",
- ])
- finally:
- self.dbg.GetSelectedPlatform().DisconnectRemote()
+ self.match("platform file open /some/file.txt -v 0755",
+ [r"File Descriptor = 16"])
+ self.match("platform file read 16 -o 11 -c 13",
+ [r"Return = 11\nData = \"frobnicator\""])
+ self.match("platform file write 16 -o 11 -d teststring",
+ [r"Return = 10"])
+ self.match("platform file close 16",
+ [r"file 16 closed."])
+ self.assertPacketLogContains([
+ "vFile:open:2f736f6d652f66696c652e747874,00000202,000001ed",
+ "vFile:pread:10,d,b",
+ "vFile:pwrite:10,b,teststring",
+ "vFile:close:10",
+ ])
def test_file_fail(self):
"""Test mocked failures of remote operations"""
@@ -51,32 +43,24 @@ def vFile(self, packet):
self.server.responder = Responder()
- try:
- self.runCmd("platform select remote-gdb-server")
- self.runCmd("platform connect connect://" +
- self.server.get_connect_address())
- self.assertTrue(self.dbg.GetSelectedPlatform().IsConnected())
-
- self.match("platform file open /some/file.txt -v 0755",
- [r"error: Invalid argument"],
- error=True)
- self.match("platform file read 16 -o 11 -c 13",
- [r"error: Invalid argument"],
- error=True)
- self.match("platform file write 16 -o 11 -d teststring",
- [r"error: Invalid argument"],
- error=True)
- self.match("platform file close 16",
- [r"error: Invalid argument"],
- error=True)
- self.assertPacketLogContains([
- "vFile:open:2f736f6d652f66696c652e747874,00000202,000001ed",
- "vFile:pread:10,d,b",
- "vFile:pwrite:10,b,teststring",
- "vFile:close:10",
- ])
- finally:
- self.dbg.GetSelectedPlatform().DisconnectRemote()
+ self.match("platform file open /some/file.txt -v 0755",
+ [r"error: Invalid argument"],
+ error=True)
+ self.match("platform file read 16 -o 11 -c 13",
+ [r"error: Invalid argument"],
+ error=True)
+ self.match("platform file write 16 -o 11 -d teststring",
+ [r"error: Invalid argument"],
+ error=True)
+ self.match("platform file close 16",
+ [r"error: Invalid argument"],
+ error=True)
+ self.assertPacketLogContains([
+ "vFile:open:2f736f6d652f66696c652e747874,00000202,000001ed",
+ "vFile:pread:10,d,b",
+ "vFile:pwrite:10,b,teststring",
+ "vFile:close:10",
+ ])
def test_file_size(self):
"""Test 'platform get-size'"""
@@ -87,19 +71,11 @@ def vFile(self, packet):
self.server.responder = Responder()
- try:
- self.runCmd("platform select remote-gdb-server")
- self.runCmd("platform connect connect://" +
- self.server.get_connect_address())
- self.assertTrue(self.dbg.GetSelectedPlatform().IsConnected())
-
- self.match("platform get-size /some/file.txt",
- [r"File size of /some/file\.txt \(remote\): 4096"])
- self.assertPacketLogContains([
- "vFile:size:2f736f6d652f66696c652e747874",
- ])
- finally:
- self.dbg.GetSelectedPlatform().DisconnectRemote()
+ self.match("platform get-size /some/file.txt",
+ [r"File size of /some/file\.txt \(remote\): 4096"])
+ self.assertPacketLogContains([
+ "vFile:size:2f736f6d652f66696c652e747874",
+ ])
def test_file_size_fallback(self):
"""Test 'platform get-size fallback to vFile:fstat'"""
@@ -116,19 +92,11 @@ def vFile(self, packet):
self.server.responder = Responder()
- try:
- self.runCmd("platform select remote-gdb-server")
- self.runCmd("platform connect connect://" +
- self.server.get_connect_address())
- self.assertTrue(self.dbg.GetSelectedPlatform().IsConnected())
-
- self.match("platform get-size /some/file.txt",
- [r"File size of /some/file\.txt \(remote\): 66051"])
- self.assertPacketLogContains([
- "vFile:size:2f736f6d652f66696c652e747874",
- "vFile:open:2f736f6d652f66696c652e747874,00000000,00000000",
- "vFile:fstat:5",
- "vFile:close:5",
- ])
- finally:
- self.dbg.GetSelectedPlatform().DisconnectRemote()
+ self.match("platform get-size /some/file.txt",
+ [r"File size of /some/file\.txt \(remote\): 66051"])
+ self.assertPacketLogContains([
+ "vFile:size:2f736f6d652f66696c652e747874",
+ "vFile:open:2f736f6d652f66696c652e747874,00000000,00000000",
+ "vFile:fstat:5",
+ "vFile:close:5",
+ ])
diff --git a/lldb/test/API/functionalities/gdb_remote_client/gdbclientutils.py b/lldb/test/API/functionalities/gdb_remote_client/gdbclientutils.py
index 0222e8453f7a0..bfbd48dd5167e 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/gdbclientutils.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/gdbclientutils.py
@@ -566,3 +566,23 @@ def assertPacketLogContains(self, packets):
if i < len(packets):
self.fail(u"Did not receive: %s\nLast 10 packets:\n\t%s" %
(packets[i], u'\n\t'.join(log)))
+
+
+class GDBPlatformClientTestBase(GDBRemoteTestBase):
+ """
+ Base class for platform server clients.
+
+ This class extends GDBRemoteTestBase by automatically connecting
+ via "platform connect" in the setUp() method.
+ """
+
+ def setUp(self):
+ super().setUp()
+ self.runCmd("platform select remote-gdb-server")
+ self.runCmd("platform connect connect://" +
+ self.server.get_connect_address())
+ self.assertTrue(self.dbg.GetSelectedPlatform().IsConnected())
+
+ def tearDown(self):
+ self.dbg.GetSelectedPlatform().DisconnectRemote()
+ super().tearDown()
More information about the lldb-commits
mailing list