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