| 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 contains tests that are shared between different implementations of | 5 // This file contains tests that are shared between different implementations of |
| 6 // |DataPipeImpl|. | 6 // |DataPipeImpl|. |
| 7 | 7 |
| 8 #include "mojo/edk/system/data_pipe_impl.h" | 8 #include "mojo/edk/system/data_pipe_impl.h" |
| 9 | 9 |
| 10 #include <stdint.h> | 10 #include <stdint.h> |
| (...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 378 class RemoteProducerDataPipeImplTestHelper | 378 class RemoteProducerDataPipeImplTestHelper |
| 379 : public RemoteDataPipeImplTestHelper { | 379 : public RemoteDataPipeImplTestHelper { |
| 380 public: | 380 public: |
| 381 RemoteProducerDataPipeImplTestHelper() {} | 381 RemoteProducerDataPipeImplTestHelper() {} |
| 382 ~RemoteProducerDataPipeImplTestHelper() override {} | 382 ~RemoteProducerDataPipeImplTestHelper() override {} |
| 383 | 383 |
| 384 void DoTransfer() override { | 384 void DoTransfer() override { |
| 385 // This is the producer dispatcher we'll send. | 385 // This is the producer dispatcher we'll send. |
| 386 auto to_send = DataPipeProducerDispatcher::Create(); | 386 auto to_send = DataPipeProducerDispatcher::Create(); |
| 387 to_send->Init(dp()); | 387 to_send->Init(dp()); |
| 388 Handle handle_to_send(std::move(to_send), MOJO_HANDLE_RIGHT_TRANSFER | | 388 Handle handle_to_send(std::move(to_send), |
| 389 MOJO_HANDLE_RIGHT_READ | | 389 DataPipeProducerDispatcher::kDefaultHandleRights); |
| 390 MOJO_HANDLE_RIGHT_WRITE); | |
| 391 RefPtr<Dispatcher> to_receive; | 390 RefPtr<Dispatcher> to_receive; |
| 392 SendHandle(0, handle_to_send, &to_receive); | 391 SendHandle(0, handle_to_send, &to_receive); |
| 393 // |handle_to_send.dispatcher| should have been closed. This is |DCHECK()|ed | 392 // |handle_to_send.dispatcher| should have been closed. This is |DCHECK()|ed |
| 394 // when it is destroyed. | 393 // when it is destroyed. |
| 395 EXPECT_TRUE(handle_to_send.dispatcher->HasOneRef()); | 394 EXPECT_TRUE(handle_to_send.dispatcher->HasOneRef()); |
| 396 handle_to_send.reset(); | 395 handle_to_send.reset(); |
| 397 | 396 |
| 398 ASSERT_EQ(Dispatcher::Type::DATA_PIPE_PRODUCER, to_receive->GetType()); | 397 ASSERT_EQ(Dispatcher::Type::DATA_PIPE_PRODUCER, to_receive->GetType()); |
| 399 producer_dispatcher_ = RefPtr<DataPipeProducerDispatcher>( | 398 producer_dispatcher_ = RefPtr<DataPipeProducerDispatcher>( |
| 400 static_cast<DataPipeProducerDispatcher*>(to_receive.get())); | 399 static_cast<DataPipeProducerDispatcher*>(to_receive.get())); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 430 class RemoteConsumerDataPipeImplTestHelper | 429 class RemoteConsumerDataPipeImplTestHelper |
| 431 : public RemoteDataPipeImplTestHelper { | 430 : public RemoteDataPipeImplTestHelper { |
| 432 public: | 431 public: |
| 433 RemoteConsumerDataPipeImplTestHelper() {} | 432 RemoteConsumerDataPipeImplTestHelper() {} |
| 434 ~RemoteConsumerDataPipeImplTestHelper() override {} | 433 ~RemoteConsumerDataPipeImplTestHelper() override {} |
| 435 | 434 |
| 436 void DoTransfer() override { | 435 void DoTransfer() override { |
| 437 // This is the consumer dispatcher we'll send. | 436 // This is the consumer dispatcher we'll send. |
| 438 auto to_send = DataPipeConsumerDispatcher::Create(); | 437 auto to_send = DataPipeConsumerDispatcher::Create(); |
| 439 to_send->Init(dp()); | 438 to_send->Init(dp()); |
| 440 Handle handle_to_send(std::move(to_send), MOJO_HANDLE_RIGHT_TRANSFER | | 439 Handle handle_to_send(std::move(to_send), |
| 441 MOJO_HANDLE_RIGHT_READ | | 440 DataPipeConsumerDispatcher::kDefaultHandleRights); |
| 442 MOJO_HANDLE_RIGHT_WRITE); | |
| 443 RefPtr<Dispatcher> to_receive; | 441 RefPtr<Dispatcher> to_receive; |
| 444 SendHandle(0, handle_to_send, &to_receive); | 442 SendHandle(0, handle_to_send, &to_receive); |
| 445 // |handle_to_send.dispatcher| should have been closed. This is |DCHECK()|ed | 443 // |handle_to_send.dispatcher| should have been closed. This is |DCHECK()|ed |
| 446 // when it is destroyed. | 444 // when it is destroyed. |
| 447 EXPECT_TRUE(handle_to_send.dispatcher->HasOneRef()); | 445 EXPECT_TRUE(handle_to_send.dispatcher->HasOneRef()); |
| 448 handle_to_send.reset(); | 446 handle_to_send.reset(); |
| 449 | 447 |
| 450 ASSERT_EQ(Dispatcher::Type::DATA_PIPE_CONSUMER, to_receive->GetType()); | 448 ASSERT_EQ(Dispatcher::Type::DATA_PIPE_CONSUMER, to_receive->GetType()); |
| 451 consumer_dispatcher_ = RefPtr<DataPipeConsumerDispatcher>( | 449 consumer_dispatcher_ = RefPtr<DataPipeConsumerDispatcher>( |
| 452 static_cast<DataPipeConsumerDispatcher*>(to_receive.get())); | 450 static_cast<DataPipeConsumerDispatcher*>(to_receive.get())); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 487 class RemoteProducerDataPipeImplTestHelper2 | 485 class RemoteProducerDataPipeImplTestHelper2 |
| 488 : public RemoteProducerDataPipeImplTestHelper { | 486 : public RemoteProducerDataPipeImplTestHelper { |
| 489 public: | 487 public: |
| 490 RemoteProducerDataPipeImplTestHelper2() {} | 488 RemoteProducerDataPipeImplTestHelper2() {} |
| 491 ~RemoteProducerDataPipeImplTestHelper2() override {} | 489 ~RemoteProducerDataPipeImplTestHelper2() override {} |
| 492 | 490 |
| 493 void DoTransfer() override { | 491 void DoTransfer() override { |
| 494 // This is the producer dispatcher we'll send. | 492 // This is the producer dispatcher we'll send. |
| 495 auto to_send = DataPipeProducerDispatcher::Create(); | 493 auto to_send = DataPipeProducerDispatcher::Create(); |
| 496 to_send->Init(dp()); | 494 to_send->Init(dp()); |
| 497 Handle handle_to_send(std::move(to_send), MOJO_HANDLE_RIGHT_TRANSFER | | 495 Handle handle_to_send(std::move(to_send), |
| 498 MOJO_HANDLE_RIGHT_READ | | 496 DataPipeProducerDispatcher::kDefaultHandleRights); |
| 499 MOJO_HANDLE_RIGHT_WRITE); | |
| 500 RefPtr<Dispatcher> to_receive; | 497 RefPtr<Dispatcher> to_receive; |
| 501 SendHandle(0, handle_to_send, &to_receive); | 498 SendHandle(0, handle_to_send, &to_receive); |
| 502 // |handle_to_send.dispatcher| should have been closed. This is |DCHECK()|ed | 499 // |handle_to_send.dispatcher| should have been closed. This is |DCHECK()|ed |
| 503 // when it is destroyed. | 500 // when it is destroyed. |
| 504 EXPECT_TRUE(handle_to_send.dispatcher->HasOneRef()); | 501 EXPECT_TRUE(handle_to_send.dispatcher->HasOneRef()); |
| 505 handle_to_send.reset(); | 502 handle_to_send.reset(); |
| 506 ASSERT_EQ(Dispatcher::Type::DATA_PIPE_PRODUCER, to_receive->GetType()); | 503 ASSERT_EQ(Dispatcher::Type::DATA_PIPE_PRODUCER, to_receive->GetType()); |
| 507 handle_to_send = Handle(std::move(to_receive), MOJO_HANDLE_RIGHT_TRANSFER | | 504 handle_to_send = Handle(std::move(to_receive), |
| 508 MOJO_HANDLE_RIGHT_READ | | 505 DataPipeProducerDispatcher::kDefaultHandleRights); |
| 509 MOJO_HANDLE_RIGHT_WRITE); | |
| 510 | 506 |
| 511 // Now send it back the other way. | 507 // Now send it back the other way. |
| 512 SendHandle(1, handle_to_send, &to_receive); | 508 SendHandle(1, handle_to_send, &to_receive); |
| 513 // |handle_to_send.dispatcher| should have been closed. This is |DCHECK()|ed | 509 // |handle_to_send.dispatcher| should have been closed. This is |DCHECK()|ed |
| 514 // when it is destroyed. | 510 // when it is destroyed. |
| 515 EXPECT_TRUE(handle_to_send.dispatcher->HasOneRef()); | 511 EXPECT_TRUE(handle_to_send.dispatcher->HasOneRef()); |
| 516 handle_to_send.reset(); | 512 handle_to_send.reset(); |
| 517 | 513 |
| 518 ASSERT_EQ(Dispatcher::Type::DATA_PIPE_PRODUCER, to_receive->GetType()); | 514 ASSERT_EQ(Dispatcher::Type::DATA_PIPE_PRODUCER, to_receive->GetType()); |
| 519 producer_dispatcher_ = RefPtr<DataPipeProducerDispatcher>( | 515 producer_dispatcher_ = RefPtr<DataPipeProducerDispatcher>( |
| (...skipping 17 matching lines...) Expand all Loading... |
| 537 class RemoteConsumerDataPipeImplTestHelper2 | 533 class RemoteConsumerDataPipeImplTestHelper2 |
| 538 : public RemoteConsumerDataPipeImplTestHelper { | 534 : public RemoteConsumerDataPipeImplTestHelper { |
| 539 public: | 535 public: |
| 540 RemoteConsumerDataPipeImplTestHelper2() {} | 536 RemoteConsumerDataPipeImplTestHelper2() {} |
| 541 ~RemoteConsumerDataPipeImplTestHelper2() override {} | 537 ~RemoteConsumerDataPipeImplTestHelper2() override {} |
| 542 | 538 |
| 543 void DoTransfer() override { | 539 void DoTransfer() override { |
| 544 // This is the consumer dispatcher we'll send. | 540 // This is the consumer dispatcher we'll send. |
| 545 auto to_send = DataPipeConsumerDispatcher::Create(); | 541 auto to_send = DataPipeConsumerDispatcher::Create(); |
| 546 to_send->Init(dp()); | 542 to_send->Init(dp()); |
| 547 Handle handle_to_send(std::move(to_send), MOJO_HANDLE_RIGHT_TRANSFER | | 543 Handle handle_to_send(std::move(to_send), |
| 548 MOJO_HANDLE_RIGHT_READ | | 544 DataPipeConsumerDispatcher::kDefaultHandleRights); |
| 549 MOJO_HANDLE_RIGHT_WRITE); | |
| 550 RefPtr<Dispatcher> to_receive; | 545 RefPtr<Dispatcher> to_receive; |
| 551 SendHandle(0, handle_to_send, &to_receive); | 546 SendHandle(0, handle_to_send, &to_receive); |
| 552 // |handle_to_send.dispatcher| should have been closed. This is |DCHECK()|ed | 547 // |handle_to_send.dispatcher| should have been closed. This is |DCHECK()|ed |
| 553 // when it is destroyed. | 548 // when it is destroyed. |
| 554 EXPECT_TRUE(handle_to_send.dispatcher->HasOneRef()); | 549 EXPECT_TRUE(handle_to_send.dispatcher->HasOneRef()); |
| 555 handle_to_send.reset(); | 550 handle_to_send.reset(); |
| 556 ASSERT_EQ(Dispatcher::Type::DATA_PIPE_CONSUMER, to_receive->GetType()); | 551 ASSERT_EQ(Dispatcher::Type::DATA_PIPE_CONSUMER, to_receive->GetType()); |
| 557 handle_to_send = Handle(std::move(to_receive), MOJO_HANDLE_RIGHT_TRANSFER | | 552 handle_to_send = Handle(std::move(to_receive), |
| 558 MOJO_HANDLE_RIGHT_READ | | 553 DataPipeConsumerDispatcher::kDefaultHandleRights); |
| 559 MOJO_HANDLE_RIGHT_WRITE); | |
| 560 | 554 |
| 561 // Now send it back the other way. | 555 // Now send it back the other way. |
| 562 SendHandle(1, handle_to_send, &to_receive); | 556 SendHandle(1, handle_to_send, &to_receive); |
| 563 // |handle_to_send.dispatcher| should have been closed. This is |DCHECK()|ed | 557 // |handle_to_send.dispatcher| should have been closed. This is |DCHECK()|ed |
| 564 // when it is destroyed. | 558 // when it is destroyed. |
| 565 EXPECT_TRUE(handle_to_send.dispatcher->HasOneRef()); | 559 EXPECT_TRUE(handle_to_send.dispatcher->HasOneRef()); |
| 566 handle_to_send.reset(); | 560 handle_to_send.reset(); |
| 567 | 561 |
| 568 ASSERT_EQ(Dispatcher::Type::DATA_PIPE_CONSUMER, to_receive->GetType()); | 562 ASSERT_EQ(Dispatcher::Type::DATA_PIPE_CONSUMER, to_receive->GetType()); |
| 569 consumer_dispatcher_ = RefPtr<DataPipeConsumerDispatcher>( | 563 consumer_dispatcher_ = RefPtr<DataPipeConsumerDispatcher>( |
| (...skipping 2371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2941 &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, 0, &hss)); | 2935 &waiter, MOJO_HANDLE_SIGNAL_READ_THRESHOLD, 0, &hss)); |
| 2942 EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals); | 2936 EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals); |
| 2943 EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals); | 2937 EXPECT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals); |
| 2944 | 2938 |
| 2945 this->ConsumerClose(); | 2939 this->ConsumerClose(); |
| 2946 } | 2940 } |
| 2947 | 2941 |
| 2948 } // namespace | 2942 } // namespace |
| 2949 } // namespace system | 2943 } // namespace system |
| 2950 } // namespace mojo | 2944 } // namespace mojo |
| OLD | NEW |