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