| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 // This file tests both |RemoteProducerDataPipeImpl| and | 5 // This file tests both |RemoteProducerDataPipeImpl| and |
| 6 // |RemoteConsumerDataPipeImpl|. | 6 // |RemoteConsumerDataPipeImpl|. |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 dp->ProducerClose(); | 191 dp->ProducerClose(); |
| 192 | 192 |
| 193 // Write the consumer to MP 0 (port 0). Wait and receive on MP 1 (port 0). | 193 // Write the consumer to MP 0 (port 0). Wait and receive on MP 1 (port 0). |
| 194 // (Add the waiter first, to avoid any handling the case where it's already | 194 // (Add the waiter first, to avoid any handling the case where it's already |
| 195 // readable.) | 195 // readable.) |
| 196 waiter.Init(); | 196 waiter.Init(); |
| 197 ASSERT_EQ(MOJO_RESULT_OK, | 197 ASSERT_EQ(MOJO_RESULT_OK, |
| 198 message_pipe(1)->AddAwakable( | 198 message_pipe(1)->AddAwakable( |
| 199 0, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 123, nullptr)); | 199 0, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 123, nullptr)); |
| 200 { | 200 { |
| 201 DispatcherTransport transport( | 201 HandleTransport transport(test::HandleTryStartTransport(consumer_handle)); |
| 202 test::HandleTryStartTransport(consumer_handle)); | |
| 203 EXPECT_TRUE(transport.is_valid()); | 202 EXPECT_TRUE(transport.is_valid()); |
| 204 | 203 |
| 205 std::vector<DispatcherTransport> transports; | 204 std::vector<HandleTransport> transports; |
| 206 transports.push_back(transport); | 205 transports.push_back(transport); |
| 207 EXPECT_EQ(MOJO_RESULT_OK, message_pipe(0)->WriteMessage( | 206 EXPECT_EQ(MOJO_RESULT_OK, message_pipe(0)->WriteMessage( |
| 208 0, NullUserPointer(), 0, &transports, | 207 0, NullUserPointer(), 0, &transports, |
| 209 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 208 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
| 210 transport.End(); | 209 transport.End(); |
| 211 | 210 |
| 212 // |consumer_handle.dispatcher| should have been closed. This is | 211 // |consumer_handle.dispatcher| should have been closed. This is |
| 213 // |DCHECK()|ed when it is destroyed. | 212 // |DCHECK()|ed when it is destroyed. |
| 214 EXPECT_TRUE(consumer_handle.dispatcher->HasOneRef()); | 213 EXPECT_TRUE(consumer_handle.dispatcher->HasOneRef()); |
| 215 consumer_handle.reset(); | 214 consumer_handle.reset(); |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 ASSERT_GE(num_bytes, 1u * sizeof(int32_t)); | 312 ASSERT_GE(num_bytes, 1u * sizeof(int32_t)); |
| 314 | 313 |
| 315 // Write the consumer to MP 0 (port 0). Wait and receive on MP 1 (port 0). | 314 // Write the consumer to MP 0 (port 0). Wait and receive on MP 1 (port 0). |
| 316 // (Add the waiter first, to avoid any handling the case where it's already | 315 // (Add the waiter first, to avoid any handling the case where it's already |
| 317 // readable.) | 316 // readable.) |
| 318 waiter.Init(); | 317 waiter.Init(); |
| 319 ASSERT_EQ(MOJO_RESULT_OK, | 318 ASSERT_EQ(MOJO_RESULT_OK, |
| 320 message_pipe(1)->AddAwakable( | 319 message_pipe(1)->AddAwakable( |
| 321 0, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 123, nullptr)); | 320 0, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 123, nullptr)); |
| 322 { | 321 { |
| 323 DispatcherTransport transport( | 322 HandleTransport transport(test::HandleTryStartTransport(consumer_handle)); |
| 324 test::HandleTryStartTransport(consumer_handle)); | |
| 325 EXPECT_TRUE(transport.is_valid()); | 323 EXPECT_TRUE(transport.is_valid()); |
| 326 | 324 |
| 327 std::vector<DispatcherTransport> transports; | 325 std::vector<HandleTransport> transports; |
| 328 transports.push_back(transport); | 326 transports.push_back(transport); |
| 329 EXPECT_EQ(MOJO_RESULT_OK, message_pipe(0)->WriteMessage( | 327 EXPECT_EQ(MOJO_RESULT_OK, message_pipe(0)->WriteMessage( |
| 330 0, NullUserPointer(), 0, &transports, | 328 0, NullUserPointer(), 0, &transports, |
| 331 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 329 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
| 332 transport.End(); | 330 transport.End(); |
| 333 | 331 |
| 334 // |consumer_handle.dispatcher| should have been closed. This is | 332 // |consumer_handle.dispatcher| should have been closed. This is |
| 335 // |DCHECK()|ed when it is destroyed. | 333 // |DCHECK()|ed when it is destroyed. |
| 336 EXPECT_TRUE(consumer_handle.dispatcher->HasOneRef()); | 334 EXPECT_TRUE(consumer_handle.dispatcher->HasOneRef()); |
| 337 consumer_handle.reset(); | 335 consumer_handle.reset(); |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 ASSERT_GE(num_bytes, 1u * sizeof(int32_t)); | 437 ASSERT_GE(num_bytes, 1u * sizeof(int32_t)); |
| 440 | 438 |
| 441 // Write the consumer to MP 0 (port 0). Wait and receive on MP 1 (port 0). | 439 // Write the consumer to MP 0 (port 0). Wait and receive on MP 1 (port 0). |
| 442 // (Add the waiter first, to avoid any handling the case where it's already | 440 // (Add the waiter first, to avoid any handling the case where it's already |
| 443 // readable.) | 441 // readable.) |
| 444 waiter.Init(); | 442 waiter.Init(); |
| 445 ASSERT_EQ(MOJO_RESULT_OK, | 443 ASSERT_EQ(MOJO_RESULT_OK, |
| 446 message_pipe(1)->AddAwakable( | 444 message_pipe(1)->AddAwakable( |
| 447 0, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 123, nullptr)); | 445 0, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 123, nullptr)); |
| 448 { | 446 { |
| 449 DispatcherTransport transport( | 447 HandleTransport transport(test::HandleTryStartTransport(consumer_handle)); |
| 450 test::HandleTryStartTransport(consumer_handle)); | |
| 451 EXPECT_TRUE(transport.is_valid()); | 448 EXPECT_TRUE(transport.is_valid()); |
| 452 | 449 |
| 453 std::vector<DispatcherTransport> transports; | 450 std::vector<HandleTransport> transports; |
| 454 transports.push_back(transport); | 451 transports.push_back(transport); |
| 455 EXPECT_EQ(MOJO_RESULT_OK, message_pipe(0)->WriteMessage( | 452 EXPECT_EQ(MOJO_RESULT_OK, message_pipe(0)->WriteMessage( |
| 456 0, NullUserPointer(), 0, &transports, | 453 0, NullUserPointer(), 0, &transports, |
| 457 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 454 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
| 458 transport.End(); | 455 transport.End(); |
| 459 | 456 |
| 460 // |consumer_handle.dispatcher| should have been closed. This is | 457 // |consumer_handle.dispatcher| should have been closed. This is |
| 461 // |DCHECK()|ed when it is destroyed. | 458 // |DCHECK()|ed when it is destroyed. |
| 462 EXPECT_TRUE(consumer_handle.dispatcher->HasOneRef()); | 459 EXPECT_TRUE(consumer_handle.dispatcher->HasOneRef()); |
| 463 consumer_handle.reset(); | 460 consumer_handle.reset(); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 525 EXPECT_EQ(123456, elements[0]); | 522 EXPECT_EQ(123456, elements[0]); |
| 526 EXPECT_EQ(789012, elements[1]); | 523 EXPECT_EQ(789012, elements[1]); |
| 527 EXPECT_EQ(0, elements[2]); | 524 EXPECT_EQ(0, elements[2]); |
| 528 | 525 |
| 529 consumer->Close(); | 526 consumer->Close(); |
| 530 } | 527 } |
| 531 | 528 |
| 532 } // namespace | 529 } // namespace |
| 533 } // namespace system | 530 } // namespace system |
| 534 } // namespace mojo | 531 } // namespace mojo |
| OLD | NEW |