[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