summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestGDBRemoteClient.py3
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/gdbclientutils.py19
2 files changed, 16 insertions, 6 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestGDBRemoteClient.py b/lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestGDBRemoteClient.py
index 7fef9df6fc2..3bf0c52edae 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestGDBRemoteClient.py
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestGDBRemoteClient.py
@@ -1,4 +1,5 @@
import lldb
+import binascii
from lldbsuite.test.lldbtest import *
from lldbsuite.test.decorators import *
from gdbclientutils import *
@@ -25,7 +26,7 @@ class TestGDBRemoteClient(GDBRemoteTestBase):
# Then, when we are asked to attach, error out.
def vAttach(self, pid):
- return "E42;" + error_msg.encode("hex")
+ return "E42;" + binascii.hexlify(error_msg.encode()).decode()
self.server.responder = MyResponder()
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/gdbclientutils.py b/lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/gdbclientutils.py
index 34e5dc3e163..ebafd405e23 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/gdbclientutils.py
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/gdbclientutils.py
@@ -76,7 +76,7 @@ def hex_decode_bytes(hex_bytes):
class MockGDBServerResponder:
"""
- A base class for handing client packets and issuing server responses for
+ A base class for handling client packets and issuing server responses for
GDB tests.
This handles many typical situations, while still allowing subclasses to
@@ -278,10 +278,14 @@ class MockGDBServer:
data = self._client.recv(4096)
if data is None or len(data) == 0:
break
+ # In Python 2, sockets return byte strings. In Python 3, sockets return bytes.
+ # If we got bytes (and not a byte string), decode them to a string for later handling.
+ if isinstance(data, bytes) and not isinstance(data, str):
+ data = data.decode()
+ self._receive(data)
except Exception as e:
self._client.close()
break
- self._receive(data)
def _receive(self, data):
"""
@@ -329,7 +333,7 @@ class MockGDBServer:
i += 1
else:
raise self.InvalidPacketException(
- "Unexexpected leading byte: %s" % data[0])
+ "Unexpected leading byte: %s" % data[0])
# If we're looking beyond the start of the received data, then we're
# looking for the end of the packet content, denoted by a #.
@@ -370,9 +374,9 @@ class MockGDBServer:
return
response = ""
# We'll handle the ack stuff here since it's not something any of the
- # tests will be concerned about, and it'll get turned off quicly anyway.
+ # tests will be concerned about, and it'll get turned off quickly anyway.
if self._shouldSendAck:
- self._client.sendall('+')
+ self._client.sendall('+'.encode())
if packet == "QStartNoAckMode":
self._shouldSendAck = False
response = "OK"
@@ -382,6 +386,10 @@ class MockGDBServer:
# Handle packet framing since we don't want to bother tests with it.
if response is not None:
framed = frame_packet(response)
+ # In Python 2, sockets send byte strings. In Python 3, sockets send bytes.
+ # If we got a string (and not a byte string), encode it before sending.
+ if isinstance(framed, str) and not isinstance(framed, bytes):
+ framed = framed.encode()
self._client.sendall(framed)
PACKET_ACK = object()
@@ -459,6 +467,7 @@ class GDBRemoteTestBase(TestBase):
i = 0
j = 0
log = self.server.responder.packetLog
+
while i < len(packets) and j < len(log):
if log[j] == packets[i]:
i += 1
OpenPOWER on IntegriCloud