| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import random | 5 import random |
| 6 import sys | 6 import sys |
| 7 import time | 7 import time |
| 8 import unittest | 8 import unittest |
| 9 | 9 |
| 10 # pylint: disable=F0401 | 10 # pylint: disable=F0401 |
| 11 from mojo.embedder import init as init_embedder | 11 import mojo.embedder |
| 12 from mojo import system | 12 from mojo import system |
| 13 | 13 |
| 14 DATA_SIZE = 1024 | 14 DATA_SIZE = 1024 |
| 15 | 15 |
| 16 | 16 |
| 17 def get_random_buffer(size): | 17 def _GetRandomBuffer(size): |
| 18 random.seed(size) | 18 random.seed(size) |
| 19 return bytearray(''.join(chr(random.randint(0, 255)) for i in xrange(size))) | 19 return bytearray(''.join(chr(random.randint(0, 255)) for i in xrange(size))) |
| 20 | 20 |
| 21 | 21 |
| 22 class BaseMojoTest(unittest.TestCase): | 22 class BaseMojoTest(unittest.TestCase): |
| 23 | 23 |
| 24 def setUp(self): | 24 def setUp(self): |
| 25 init_embedder() | 25 mojo.embedder.Init() |
| 26 | 26 |
| 27 | 27 |
| 28 class CoreTest(BaseMojoTest): | 28 class CoreTest(BaseMojoTest): |
| 29 | 29 |
| 30 def test_results(self): | 30 def testResults(self): |
| 31 self.assertEquals(system.RESULT_OK, 0) | 31 self.assertEquals(system.RESULT_OK, 0) |
| 32 self.assertLess(system.RESULT_CANCELLED, 0) | 32 self.assertLess(system.RESULT_CANCELLED, 0) |
| 33 self.assertLess(system.RESULT_UNKNOWN, 0) | 33 self.assertLess(system.RESULT_UNKNOWN, 0) |
| 34 self.assertLess(system.RESULT_INVALID_ARGUMENT, 0) | 34 self.assertLess(system.RESULT_INVALID_ARGUMENT, 0) |
| 35 self.assertLess(system.RESULT_DEADLINE_EXCEEDED, 0) | 35 self.assertLess(system.RESULT_DEADLINE_EXCEEDED, 0) |
| 36 self.assertLess(system.RESULT_NOT_FOUND, 0) | 36 self.assertLess(system.RESULT_NOT_FOUND, 0) |
| 37 self.assertLess(system.RESULT_ALREADY_EXISTS, 0) | 37 self.assertLess(system.RESULT_ALREADY_EXISTS, 0) |
| 38 self.assertLess(system.RESULT_PERMISSION_DENIED, 0) | 38 self.assertLess(system.RESULT_PERMISSION_DENIED, 0) |
| 39 self.assertLess(system.RESULT_RESOURCE_EXHAUSTED, 0) | 39 self.assertLess(system.RESULT_RESOURCE_EXHAUSTED, 0) |
| 40 self.assertLess(system.RESULT_FAILED_PRECONDITION, 0) | 40 self.assertLess(system.RESULT_FAILED_PRECONDITION, 0) |
| 41 self.assertLess(system.RESULT_ABORTED, 0) | 41 self.assertLess(system.RESULT_ABORTED, 0) |
| 42 self.assertLess(system.RESULT_OUT_OF_RANGE, 0) | 42 self.assertLess(system.RESULT_OUT_OF_RANGE, 0) |
| 43 self.assertLess(system.RESULT_UNIMPLEMENTED, 0) | 43 self.assertLess(system.RESULT_UNIMPLEMENTED, 0) |
| 44 self.assertLess(system.RESULT_INTERNAL, 0) | 44 self.assertLess(system.RESULT_INTERNAL, 0) |
| 45 self.assertLess(system.RESULT_UNAVAILABLE, 0) | 45 self.assertLess(system.RESULT_UNAVAILABLE, 0) |
| 46 self.assertLess(system.RESULT_DATA_LOSS, 0) | 46 self.assertLess(system.RESULT_DATA_LOSS, 0) |
| 47 self.assertLess(system.RESULT_BUSY, 0) | 47 self.assertLess(system.RESULT_BUSY, 0) |
| 48 self.assertLess(system.RESULT_SHOULD_WAIT, 0) | 48 self.assertLess(system.RESULT_SHOULD_WAIT, 0) |
| 49 | 49 |
| 50 def test_constants(self): | 50 def testConstants(self): |
| 51 self.assertGreaterEqual(system.DEADLINE_INDEFINITE, 0) | 51 self.assertGreaterEqual(system.DEADLINE_INDEFINITE, 0) |
| 52 self.assertGreaterEqual(system.HANDLE_SIGNAL_NONE, 0) | 52 self.assertGreaterEqual(system.HANDLE_SIGNAL_NONE, 0) |
| 53 self.assertGreaterEqual(system.HANDLE_SIGNAL_READABLE, 0) | 53 self.assertGreaterEqual(system.HANDLE_SIGNAL_READABLE, 0) |
| 54 self.assertGreaterEqual(system.HANDLE_SIGNAL_WRITABLE, 0) | 54 self.assertGreaterEqual(system.HANDLE_SIGNAL_WRITABLE, 0) |
| 55 self.assertGreaterEqual(system.WRITE_MESSAGE_FLAG_NONE, 0) | 55 self.assertGreaterEqual(system.WRITE_MESSAGE_FLAG_NONE, 0) |
| 56 self.assertGreaterEqual(system.READ_MESSAGE_FLAG_NONE, 0) | 56 self.assertGreaterEqual(system.READ_MESSAGE_FLAG_NONE, 0) |
| 57 self.assertGreaterEqual(system.READ_MESSAGE_FLAG_MAY_DISCARD, 0) | 57 self.assertGreaterEqual(system.READ_MESSAGE_FLAG_MAY_DISCARD, 0) |
| 58 self.assertGreaterEqual(system.WRITE_DATA_FLAG_NONE, 0) | 58 self.assertGreaterEqual(system.WRITE_DATA_FLAG_NONE, 0) |
| 59 self.assertGreaterEqual(system.WRITE_DATA_FLAG_ALL_OR_NONE, 0) | 59 self.assertGreaterEqual(system.WRITE_DATA_FLAG_ALL_OR_NONE, 0) |
| 60 self.assertGreaterEqual(system.READ_DATA_FLAG_NONE, 0) | 60 self.assertGreaterEqual(system.READ_DATA_FLAG_NONE, 0) |
| 61 self.assertGreaterEqual(system.READ_DATA_FLAG_ALL_OR_NONE, 0) | 61 self.assertGreaterEqual(system.READ_DATA_FLAG_ALL_OR_NONE, 0) |
| 62 self.assertGreaterEqual(system.READ_DATA_FLAG_DISCARD, 0) | 62 self.assertGreaterEqual(system.READ_DATA_FLAG_DISCARD, 0) |
| 63 self.assertGreaterEqual(system.READ_DATA_FLAG_QUERY, 0) | 63 self.assertGreaterEqual(system.READ_DATA_FLAG_QUERY, 0) |
| 64 self.assertGreaterEqual(system.MAP_BUFFER_FLAG_NONE, 0) | 64 self.assertGreaterEqual(system.MAP_BUFFER_FLAG_NONE, 0) |
| 65 | 65 |
| 66 def test_get_time_ticks_now(self): | 66 def testGetTimeTicksNow(self): |
| 67 pt1 = time.time() | 67 pt1 = time.time() |
| 68 v1 = system.get_time_ticks_now() | 68 v1 = system.GetTimeTicksNow() |
| 69 time.sleep(1e-3) | 69 time.sleep(1e-3) |
| 70 v2 = system.get_time_ticks_now() | 70 v2 = system.GetTimeTicksNow() |
| 71 pt2 = time.time() | 71 pt2 = time.time() |
| 72 self.assertGreater(v1, 0) | 72 self.assertGreater(v1, 0) |
| 73 self.assertGreater(v2, v1 + 1000) | 73 self.assertGreater(v2, v1 + 1000) |
| 74 self.assertGreater(1e6 * (pt2 - pt1), v2 - v1) | 74 self.assertGreater(1e6 * (pt2 - pt1), v2 - v1) |
| 75 | 75 |
| 76 def _test_handles_creation(self, *args): | 76 def _testHandlesCreation(self, *args): |
| 77 for handle in args: | 77 for handle in args: |
| 78 self.assertTrue(handle.is_valid()) | 78 self.assertTrue(handle.IsValid()) |
| 79 handle.close() | 79 handle.Close() |
| 80 self.assertFalse(handle.is_valid()) | 80 self.assertFalse(handle.IsValid()) |
| 81 | 81 |
| 82 def _test_message_handle_creation(self, handles): | 82 def _TestMessageHandleCreation(self, handles): |
| 83 self._test_handles_creation(handles.handle0, handles.handle1) | 83 self._testHandlesCreation(handles.handle0, handles.handle1) |
| 84 | 84 |
| 85 def test_create_message_pipe(self): | 85 def testCreateMessagePipe(self): |
| 86 self._test_message_handle_creation(system.MessagePipe()) | 86 self._TestMessageHandleCreation(system.MessagePipe()) |
| 87 | 87 |
| 88 def test_create_message_pipe_with_none_options(self): | 88 def testCreateMessagePipeWithNoneOptions(self): |
| 89 self._test_message_handle_creation(system.MessagePipe(None)) | 89 self._TestMessageHandleCreation(system.MessagePipe(None)) |
| 90 | 90 |
| 91 def test_create_message_pipe_with_options(self): | 91 def testCreateMessagePipeWithOptions(self): |
| 92 self._test_message_handle_creation( | 92 self._TestMessageHandleCreation( |
| 93 system.MessagePipe(system.CreateMessagePipeOptions())) | 93 system.MessagePipe(system.CreateMessagePipeOptions())) |
| 94 | 94 |
| 95 def test_wait_over_message_pipe(self): | 95 def testWaitOverMessagePipe(self): |
| 96 handles = system.MessagePipe() | 96 handles = system.MessagePipe() |
| 97 handle = handles.handle0 | 97 handle = handles.handle0 |
| 98 | 98 |
| 99 self.assertEquals(system.RESULT_OK, handle.wait( | 99 self.assertEquals(system.RESULT_OK, handle.Wait( |
| 100 system.HANDLE_SIGNAL_WRITABLE, system.DEADLINE_INDEFINITE)) | 100 system.HANDLE_SIGNAL_WRITABLE, system.DEADLINE_INDEFINITE)) |
| 101 self.assertEquals(system.RESULT_DEADLINE_EXCEEDED, | 101 self.assertEquals(system.RESULT_DEADLINE_EXCEEDED, |
| 102 handle.wait(system.HANDLE_SIGNAL_READABLE, 0)) | 102 handle.Wait(system.HANDLE_SIGNAL_READABLE, 0)) |
| 103 | 103 |
| 104 handles.handle1.write_message() | 104 handles.handle1.WriteMessage() |
| 105 | 105 |
| 106 self.assertEquals( | 106 self.assertEquals( |
| 107 system.RESULT_OK, | 107 system.RESULT_OK, |
| 108 handle.wait( | 108 handle.Wait( |
| 109 system.HANDLE_SIGNAL_READABLE, | 109 system.HANDLE_SIGNAL_READABLE, |
| 110 system.DEADLINE_INDEFINITE)) | 110 system.DEADLINE_INDEFINITE)) |
| 111 | 111 |
| 112 def test_wait_over_many_message_pipe(self): | 112 def testWaitOverManyMessagePipe(self): |
| 113 handles = system.MessagePipe() | 113 handles = system.MessagePipe() |
| 114 handle0 = handles.handle0 | 114 handle0 = handles.handle0 |
| 115 handle1 = handles.handle1 | 115 handle1 = handles.handle1 |
| 116 | 116 |
| 117 self.assertEquals( | 117 self.assertEquals( |
| 118 0, | 118 0, |
| 119 system.wait_many( | 119 system.WaitMany( |
| 120 [(handle0, system.HANDLE_SIGNAL_WRITABLE), | 120 [(handle0, system.HANDLE_SIGNAL_WRITABLE), |
| 121 (handle1, system.HANDLE_SIGNAL_WRITABLE)], | 121 (handle1, system.HANDLE_SIGNAL_WRITABLE)], |
| 122 system.DEADLINE_INDEFINITE)) | 122 system.DEADLINE_INDEFINITE)) |
| 123 self.assertEquals( | 123 self.assertEquals( |
| 124 system.RESULT_DEADLINE_EXCEEDED, | 124 system.RESULT_DEADLINE_EXCEEDED, |
| 125 system.wait_many( | 125 system.WaitMany( |
| 126 [(handle0, system.HANDLE_SIGNAL_READABLE), | 126 [(handle0, system.HANDLE_SIGNAL_READABLE), |
| 127 (handle1, system.HANDLE_SIGNAL_READABLE)], 0)) | 127 (handle1, system.HANDLE_SIGNAL_READABLE)], 0)) |
| 128 | 128 |
| 129 handle0.write_message() | 129 handle0.WriteMessage() |
| 130 | 130 |
| 131 self.assertEquals( | 131 self.assertEquals( |
| 132 1, | 132 1, |
| 133 system.wait_many( | 133 system.WaitMany( |
| 134 [(handle0, system.HANDLE_SIGNAL_READABLE), | 134 [(handle0, system.HANDLE_SIGNAL_READABLE), |
| 135 (handle1, system.HANDLE_SIGNAL_READABLE)], | 135 (handle1, system.HANDLE_SIGNAL_READABLE)], |
| 136 system.DEADLINE_INDEFINITE)) | 136 system.DEADLINE_INDEFINITE)) |
| 137 | 137 |
| 138 def test_send_bytes_over_message_pipe(self): | 138 def testSendBytesOverMessagePipe(self): |
| 139 handles = system.MessagePipe() | 139 handles = system.MessagePipe() |
| 140 data = get_random_buffer(DATA_SIZE) | 140 data = _GetRandomBuffer(DATA_SIZE) |
| 141 handles.handle0.write_message(data) | 141 handles.handle0.WriteMessage(data) |
| 142 (res, buffers, next_message) = handles.handle1.read_message() | 142 (res, buffers, next_message) = handles.handle1.ReadMessage() |
| 143 self.assertEquals(system.RESULT_RESOURCE_EXHAUSTED, res) | 143 self.assertEquals(system.RESULT_RESOURCE_EXHAUSTED, res) |
| 144 self.assertEquals(None, buffers) | 144 self.assertEquals(None, buffers) |
| 145 self.assertEquals((DATA_SIZE, 0), next_message) | 145 self.assertEquals((DATA_SIZE, 0), next_message) |
| 146 result = bytearray(DATA_SIZE) | 146 result = bytearray(DATA_SIZE) |
| 147 (res, buffers, next_message) = handles.handle1.read_message(result) | 147 (res, buffers, next_message) = handles.handle1.ReadMessage(result) |
| 148 self.assertEquals(system.RESULT_OK, res) | 148 self.assertEquals(system.RESULT_OK, res) |
| 149 self.assertEquals(None, next_message) | 149 self.assertEquals(None, next_message) |
| 150 self.assertEquals((data, []), buffers) | 150 self.assertEquals((data, []), buffers) |
| 151 | 151 |
| 152 def test_send_empty_data_over_message_pipe(self): | 152 def testSendEmptyDataOverMessagePipe(self): |
| 153 handles = system.MessagePipe() | 153 handles = system.MessagePipe() |
| 154 handles.handle0.write_message(None) | 154 handles.handle0.WriteMessage(None) |
| 155 (res, buffers, next_message) = handles.handle1.read_message() | 155 (res, buffers, next_message) = handles.handle1.ReadMessage() |
| 156 | 156 |
| 157 self.assertEquals(system.RESULT_OK, res) | 157 self.assertEquals(system.RESULT_OK, res) |
| 158 self.assertEquals(None, next_message) | 158 self.assertEquals(None, next_message) |
| 159 self.assertEquals((None, []), buffers) | 159 self.assertEquals((None, []), buffers) |
| 160 | 160 |
| 161 def test_send_handle_over_message_pipe(self): | 161 def testSendHandleOverMessagePipe(self): |
| 162 handles = system.MessagePipe() | 162 handles = system.MessagePipe() |
| 163 handles_to_send = system.MessagePipe() | 163 handles_to_send = system.MessagePipe() |
| 164 handles.handle0.write_message(handles=[handles_to_send.handle0, | 164 handles.handle0.WriteMessage(handles=[handles_to_send.handle0, |
| 165 handles_to_send.handle1]) | 165 handles_to_send.handle1]) |
| 166 (res, buffers, next_message) = handles.handle1.read_message( | 166 (res, buffers, next_message) = handles.handle1.ReadMessage( |
| 167 max_number_of_handles=2) | 167 max_number_of_handles=2) |
| 168 | 168 |
| 169 self.assertFalse(handles_to_send.handle0.is_valid()) | 169 self.assertFalse(handles_to_send.handle0.IsValid()) |
| 170 self.assertFalse(handles_to_send.handle1.is_valid()) | 170 self.assertFalse(handles_to_send.handle1.IsValid()) |
| 171 self.assertEquals(system.RESULT_OK, res) | 171 self.assertEquals(system.RESULT_OK, res) |
| 172 self.assertEquals(None, next_message) | 172 self.assertEquals(None, next_message) |
| 173 self.assertEquals(None, buffers[0]) | 173 self.assertEquals(None, buffers[0]) |
| 174 self.assertEquals(2, len(buffers[1])) | 174 self.assertEquals(2, len(buffers[1])) |
| 175 | 175 |
| 176 handles = buffers[1] | 176 handles = buffers[1] |
| 177 for handle in handles: | 177 for handle in handles: |
| 178 self.assertTrue(handle.is_valid()) | 178 self.assertTrue(handle.IsValid()) |
| 179 (res, buffers, next_message) = handle.read_message() | 179 (res, buffers, next_message) = handle.ReadMessage() |
| 180 self.assertEquals(system.RESULT_SHOULD_WAIT, res) | 180 self.assertEquals(system.RESULT_SHOULD_WAIT, res) |
| 181 | 181 |
| 182 for handle in handles: | 182 for handle in handles: |
| 183 handle.write_message() | 183 handle.WriteMessage() |
| 184 | 184 |
| 185 for handle in handles: | 185 for handle in handles: |
| 186 (res, buffers, next_message) = handle.read_message() | 186 (res, buffers, next_message) = handle.ReadMessage() |
| 187 self.assertEquals(system.RESULT_OK, res) | 187 self.assertEquals(system.RESULT_OK, res) |
| 188 | 188 |
| 189 def _test_data_handle_creation(self, handles): | 189 def _TestDataHandleCreation(self, handles): |
| 190 self._test_handles_creation( | 190 self._testHandlesCreation( |
| 191 handles.producer_handle, handles.consumer_handle) | 191 handles.producer_handle, handles.consumer_handle) |
| 192 | 192 |
| 193 def test_create_data_pipe(self): | 193 def testCreateDataPipe(self): |
| 194 self._test_data_handle_creation(system.DataPipe()) | 194 self._TestDataHandleCreation(system.DataPipe()) |
| 195 | 195 |
| 196 def test_create_data_pipe_with_none_options(self): | 196 def testCreateDataPipeWithNoneOptions(self): |
| 197 self._test_data_handle_creation(system.DataPipe(None)) | 197 self._TestDataHandleCreation(system.DataPipe(None)) |
| 198 | 198 |
| 199 def test_create_data_pipe_with_default_options(self): | 199 def testCreateDataPipeWithDefaultOptions(self): |
| 200 self._test_data_handle_creation( | 200 self._TestDataHandleCreation( |
| 201 system.DataPipe(system.CreateDataPipeOptions())) | 201 system.DataPipe(system.CreateDataPipeOptions())) |
| 202 | 202 |
| 203 def test_create_data_pipe_with_discard_flag(self): | 203 def testCreateDataPipeWithDiscardFlag(self): |
| 204 options = system.CreateDataPipeOptions() | 204 options = system.CreateDataPipeOptions() |
| 205 options.flags = system.CreateDataPipeOptions.FLAG_MAY_DISCARD | 205 options.flags = system.CreateDataPipeOptions.FLAG_MAY_DISCARD |
| 206 self._test_data_handle_creation(system.DataPipe(options)) | 206 self._TestDataHandleCreation(system.DataPipe(options)) |
| 207 | 207 |
| 208 def test_create_data_pipe_with_element_size(self): | 208 def testCreateDataPipeWithElementSize(self): |
| 209 options = system.CreateDataPipeOptions() | 209 options = system.CreateDataPipeOptions() |
| 210 options.element_num_bytes = 5 | 210 options.element_num_bytes = 5 |
| 211 self._test_data_handle_creation(system.DataPipe(options)) | 211 self._TestDataHandleCreation(system.DataPipe(options)) |
| 212 | 212 |
| 213 def test_create_data_pipe_with_capacity(self): | 213 def testCreateDataPipeWithCapacity(self): |
| 214 options = system.CreateDataPipeOptions() | 214 options = system.CreateDataPipeOptions() |
| 215 options.element_capacity_num_bytes = DATA_SIZE | 215 options.element_capacity_num_bytes = DATA_SIZE |
| 216 self._test_data_handle_creation(system.DataPipe(options)) | 216 self._TestDataHandleCreation(system.DataPipe(options)) |
| 217 | 217 |
| 218 def test_create_data_pipe_with_incorrect_parameters(self): | 218 def testCreateDataPipeWithIncorrectParameters(self): |
| 219 options = system.CreateDataPipeOptions() | 219 options = system.CreateDataPipeOptions() |
| 220 options.element_num_bytes = 5 | 220 options.element_num_bytes = 5 |
| 221 options.capacity_num_bytes = DATA_SIZE | 221 options.capacity_num_bytes = DATA_SIZE |
| 222 with self.assertRaises(system.MojoException) as cm: | 222 with self.assertRaises(system.MojoException) as cm: |
| 223 self._test_data_handle_creation(system.DataPipe(options)) | 223 self._TestDataHandleCreation(system.DataPipe(options)) |
| 224 self.assertEquals(system.RESULT_INVALID_ARGUMENT, cm.exception.mojo_result) | 224 self.assertEquals(system.RESULT_INVALID_ARGUMENT, cm.exception.mojo_result) |
| 225 | 225 |
| 226 def test_send_empty_data_over_data_pipe(self): | 226 def testSendEmptyDataOverDataPipe(self): |
| 227 pipes = system.DataPipe() | 227 pipes = system.DataPipe() |
| 228 self.assertEquals((system.RESULT_OK, 0), pipes.producer_handle.write_data()) | 228 self.assertEquals((system.RESULT_OK, 0), pipes.producer_handle.WriteData()) |
| 229 self.assertEquals( | 229 self.assertEquals( |
| 230 (system.RESULT_OK, None), pipes.consumer_handle.read_data()) | 230 (system.RESULT_OK, None), pipes.consumer_handle.ReadData()) |
| 231 | 231 |
| 232 def test_send_data_over_data_pipe(self): | 232 def testSendDataOverDataPipe(self): |
| 233 pipes = system.DataPipe() | 233 pipes = system.DataPipe() |
| 234 data = get_random_buffer(DATA_SIZE) | 234 data = _GetRandomBuffer(DATA_SIZE) |
| 235 self.assertEquals((system.RESULT_OK, DATA_SIZE), | 235 self.assertEquals((system.RESULT_OK, DATA_SIZE), |
| 236 pipes.producer_handle.write_data(data)) | 236 pipes.producer_handle.WriteData(data)) |
| 237 self.assertEquals((system.RESULT_OK, data), | 237 self.assertEquals((system.RESULT_OK, data), |
| 238 pipes.consumer_handle.read_data(bytearray(DATA_SIZE))) | 238 pipes.consumer_handle.ReadData(bytearray(DATA_SIZE))) |
| 239 | 239 |
| 240 def test_two_phase_write_on_data_pipe(self): | 240 def testTwoPhaseWriteOnDataPipe(self): |
| 241 pipes = system.DataPipe() | 241 pipes = system.DataPipe() |
| 242 (res, buf) = pipes.producer_handle.begin_write_data(DATA_SIZE) | 242 (res, buf) = pipes.producer_handle.BeginWriteData(DATA_SIZE) |
| 243 self.assertEquals(system.RESULT_OK, res) | 243 self.assertEquals(system.RESULT_OK, res) |
| 244 self.assertGreaterEqual(len(buf.buffer), DATA_SIZE) | 244 self.assertGreaterEqual(len(buf.buffer), DATA_SIZE) |
| 245 data = get_random_buffer(DATA_SIZE) | 245 data = _GetRandomBuffer(DATA_SIZE) |
| 246 buf.buffer[0:DATA_SIZE] = data | 246 buf.buffer[0:DATA_SIZE] = data |
| 247 self.assertEquals(system.RESULT_OK, buf.end(DATA_SIZE)) | 247 self.assertEquals(system.RESULT_OK, buf.End(DATA_SIZE)) |
| 248 self.assertEquals((system.RESULT_OK, data), | 248 self.assertEquals((system.RESULT_OK, data), |
| 249 pipes.consumer_handle.read_data(bytearray(DATA_SIZE))) | 249 pipes.consumer_handle.ReadData(bytearray(DATA_SIZE))) |
| 250 | 250 |
| 251 def test_two_phase_read_on_data_pipe(self): | 251 def testTwoPhaseReadOnDataPipe(self): |
| 252 pipes = system.DataPipe() | 252 pipes = system.DataPipe() |
| 253 data = get_random_buffer(DATA_SIZE) | 253 data = _GetRandomBuffer(DATA_SIZE) |
| 254 self.assertEquals((system.RESULT_OK, DATA_SIZE), | 254 self.assertEquals((system.RESULT_OK, DATA_SIZE), |
| 255 pipes.producer_handle.write_data(data)) | 255 pipes.producer_handle.WriteData(data)) |
| 256 (res, buf) = pipes.consumer_handle.begin_read_data() | 256 (res, buf) = pipes.consumer_handle.BeginReadData() |
| 257 self.assertEquals(system.RESULT_OK, res) | 257 self.assertEquals(system.RESULT_OK, res) |
| 258 self.assertEquals(DATA_SIZE, len(buf.buffer)) | 258 self.assertEquals(DATA_SIZE, len(buf.buffer)) |
| 259 self.assertEquals(data, buf.buffer) | 259 self.assertEquals(data, buf.buffer) |
| 260 self.assertEquals(system.RESULT_OK, buf.end(DATA_SIZE)) | 260 self.assertEquals(system.RESULT_OK, buf.End(DATA_SIZE)) |
| 261 | 261 |
| 262 def test_create_shared_buffer(self): | 262 def testCreateSharedBuffer(self): |
| 263 self._test_handles_creation(system.create_shared_buffer(DATA_SIZE)) | 263 self._testHandlesCreation(system.CreateSharedBuffer(DATA_SIZE)) |
| 264 | 264 |
| 265 def test_create_shared_buffer_with_none_options(self): | 265 def testCreateSharedBufferWithNoneOptions(self): |
| 266 self._test_handles_creation(system.create_shared_buffer(DATA_SIZE, None)) | 266 self._testHandlesCreation(system.CreateSharedBuffer(DATA_SIZE, None)) |
| 267 | 267 |
| 268 def test_create_shared_buffer_with_default_options(self): | 268 def testCreateSharedBufferWithDefaultOptions(self): |
| 269 self._test_handles_creation( | 269 self._testHandlesCreation( |
| 270 system.create_shared_buffer( | 270 system.CreateSharedBuffer( |
| 271 DATA_SIZE, | 271 DATA_SIZE, |
| 272 system.CreateSharedBufferOptions())) | 272 system.CreateSharedBufferOptions())) |
| 273 | 273 |
| 274 def test_duplicate_shared_buffer(self): | 274 def testDuplicateSharedBuffer(self): |
| 275 handle = system.create_shared_buffer(DATA_SIZE) | 275 handle = system.CreateSharedBuffer(DATA_SIZE) |
| 276 self._test_handles_creation(handle.duplicate()) | 276 self._testHandlesCreation(handle.Duplicate()) |
| 277 | 277 |
| 278 def test_duplicate_shared_buffer_with_none_options(self): | 278 def testDuplicateSharedBufferWithNoneOptions(self): |
| 279 handle = system.create_shared_buffer(DATA_SIZE) | 279 handle = system.CreateSharedBuffer(DATA_SIZE) |
| 280 self._test_handles_creation(handle.duplicate(None)) | 280 self._testHandlesCreation(handle.Duplicate(None)) |
| 281 | 281 |
| 282 def test_duplicate_shared_buffer_with_default_options(self): | 282 def testDuplicateSharedBufferWithDefaultOptions(self): |
| 283 handle = system.create_shared_buffer(DATA_SIZE) | 283 handle = system.CreateSharedBuffer(DATA_SIZE) |
| 284 self._test_handles_creation( | 284 self._testHandlesCreation( |
| 285 handle.duplicate(system.DuplicateSharedBufferOptions())) | 285 handle.Duplicate(system.DuplicateSharedBufferOptions())) |
| 286 | 286 |
| 287 def test_send_bytes_over_shared_buffer(self): | 287 def testSendBytesOverSharedBuffer(self): |
| 288 handle = system.create_shared_buffer(DATA_SIZE) | 288 handle = system.CreateSharedBuffer(DATA_SIZE) |
| 289 duplicated = handle.duplicate() | 289 duplicated = handle.Duplicate() |
| 290 data = get_random_buffer(DATA_SIZE) | 290 data = _GetRandomBuffer(DATA_SIZE) |
| 291 (res1, buf1) = handle.map(0, DATA_SIZE) | 291 (res1, buf1) = handle.Map(0, DATA_SIZE) |
| 292 (res2, buf2) = duplicated.map(0, DATA_SIZE) | 292 (res2, buf2) = duplicated.Map(0, DATA_SIZE) |
| 293 self.assertEquals(system.RESULT_OK, res1) | 293 self.assertEquals(system.RESULT_OK, res1) |
| 294 self.assertEquals(system.RESULT_OK, res2) | 294 self.assertEquals(system.RESULT_OK, res2) |
| 295 self.assertEquals(DATA_SIZE, len(buf1.buffer)) | 295 self.assertEquals(DATA_SIZE, len(buf1.buffer)) |
| 296 self.assertEquals(DATA_SIZE, len(buf2.buffer)) | 296 self.assertEquals(DATA_SIZE, len(buf2.buffer)) |
| 297 self.assertEquals(buf1.buffer, buf2.buffer) | 297 self.assertEquals(buf1.buffer, buf2.buffer) |
| 298 | 298 |
| 299 buf1.buffer[:] = data | 299 buf1.buffer[:] = data |
| 300 self.assertEquals(data, buf1.buffer) | 300 self.assertEquals(data, buf1.buffer) |
| 301 self.assertEquals(data, buf2.buffer) | 301 self.assertEquals(data, buf2.buffer) |
| 302 self.assertEquals(buf1.buffer, buf2.buffer) | 302 self.assertEquals(buf1.buffer, buf2.buffer) |
| 303 | 303 |
| 304 | 304 |
| 305 if __name__ == '__main__': | 305 if __name__ == '__main__': |
| 306 suite = unittest.TestLoader().loadTestsFromTestCase(CoreTest) | 306 suite = unittest.TestLoader().loadTestsFromTestCase(CoreTest) |
| 307 test_results = unittest.TextTestRunner(verbosity=0).run(suite) | 307 test_results = unittest.TextTestRunner(verbosity=0).run(suite) |
| 308 if not test_results.wasSuccessful(): | 308 if not test_results.wasSuccessful(): |
| 309 sys.exit(1) | 309 sys.exit(1) |
| 310 sys.exit(0) | 310 sys.exit(0) |
| OLD | NEW |