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):


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):
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to