[Lldb-commits] [PATCH] D19510: Fix send and receive of ACK byte in test infrastructure for Python 3.5
Adrian McCarthy via lldb-commits
lldb-commits at lists.llvm.org
Mon Apr 25 16:18:54 PDT 2016
amccarth created this revision.
amccarth added a reviewer: tfiala.
amccarth added a subscriber: lldb-commits.
Python 3.5 is pickier about the distinction between chars and bytes (and strings and bytearrays) than Python 2.7.
The call to ack_bytes.append(chr(42)) was causing a type error to be thrown (during init, so we didn't see a proper stack trace).
I've used the b'*' syntax which creates a bytearray in Python 3 and a plain string in Python 2. I believe this should work in Python 2, but I'm not in a position to test that. If you want to try patching this in to your build to be sure, it would be appreciated.
http://reviews.llvm.org/D19510
Files:
packages/Python/lldbsuite/test_event/dotest_channels.py
packages/Python/lldbsuite/test_event/formatter/__init__.py
Index: packages/Python/lldbsuite/test_event/formatter/__init__.py
===================================================================
--- packages/Python/lldbsuite/test_event/formatter/__init__.py
+++ packages/Python/lldbsuite/test_event/formatter/__init__.py
@@ -40,9 +40,6 @@
self.cleanup_func = cleanup_func
-SOCKET_ACK_BYTE_VALUE = b'*' # ASCII for chr(42)
-
-
def create_results_formatter(config):
"""Sets up a test results formatter.
@@ -78,7 +75,7 @@
# listener socket gets spun up; otherwise,
# we lose the test result info.
read_bytes = sock.recv(1)
- if read_bytes is None or (len(read_bytes) < 1) or (read_bytes[0] != SOCKET_ACK_BYTE_VALUE):
+ if read_bytes is None or (len(read_bytes) < 1) or (read_bytes != b'*'):
raise Exception("listening socket did not respond with ack byte: response={}".format(read_bytes))
return sock, lambda: socket_closer(sock)
Index: packages/Python/lldbsuite/test_event/dotest_channels.py
===================================================================
--- packages/Python/lldbsuite/test_event/dotest_channels.py
+++ packages/Python/lldbsuite/test_event/dotest_channels.py
@@ -59,8 +59,7 @@
# the initiators of the socket to await this to ensure
# that this end is up and running (and therefore already
# into the async map).
- ack_bytes = bytearray()
- ack_bytes.append(chr(42))
+ ack_bytes = b'*'
file_object.send(ack_bytes)
def deserialize_payload(self):
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19510.54938.patch
Type: text/x-patch
Size: 1553 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160425/a3623c6f/attachment-0001.bin>
More information about the lldb-commits
mailing list