Request the right number of handles when Connector receives messages
R=qsr@chromium.org
Review URL: https://codereview.chromium.org/739753003
diff --git a/mojo/public/python/mojo/bindings/messaging.py b/mojo/public/python/mojo/bindings/messaging.py
index bba3c01..c1d54fc 100644
--- a/mojo/public/python/mojo/bindings/messaging.py
+++ b/mojo/public/python/mojo/bindings/messaging.py
@@ -398,7 +398,7 @@
message_receiver.Accept(Message(bytearray(), []))
if result != system.RESULT_RESOURCE_EXHAUSTED:
return result
- (result, data, _) = handle.ReadMessage(bytearray(sizes[0]))
+ (result, data, _) = handle.ReadMessage(bytearray(sizes[0]), sizes[1])
if result == system.RESULT_OK and message_receiver:
message_receiver.Accept(Message(data[0], data[1]))
return result
diff --git a/mojo/python/tests/messaging_unittest.py b/mojo/python/tests/messaging_unittest.py
index 767ba74..e09532f 100644
--- a/mojo/python/tests/messaging_unittest.py
+++ b/mojo/python/tests/messaging_unittest.py
@@ -45,6 +45,8 @@
def tearDown(self):
self.connector = None
self.handle = None
+ self.received_messages = []
+ self.received_errors = []
super(ConnectorTest, self).tearDown()
def testConnectorRead(self):
@@ -72,6 +74,14 @@
(result, _, _) = self.handle.ReadMessage()
self.assertEquals(result, system.RESULT_FAILED_PRECONDITION)
+ def testConnectorWriteHandle(self):
+ new_handles = system.MessagePipe()
+ self.handle.WriteMessage(None, [new_handles.handle0])
+ self.loop.RunUntilIdle()
+ self.assertTrue(self.received_messages)
+ self.assertTrue(self.received_messages[0].handles)
+ self.assertFalse(self.received_errors)
+
class HeaderTest(unittest.TestCase):