| 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 #include "mojo/edk/system/channel_endpoint.h" | 5 #include "mojo/edk/system/channel_endpoint.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/synchronization/waitable_event.h" | 10 #include "base/synchronization/waitable_event.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 FROM_HERE, &ChannelEndpointTest::ShutdownChannelOnIOThread, 1); | 41 FROM_HERE, &ChannelEndpointTest::ShutdownChannelOnIOThread, 1); |
| 42 | 42 |
| 43 test::ChannelTestBase::TearDown(); | 43 test::ChannelTestBase::TearDown(); |
| 44 } | 44 } |
| 45 | 45 |
| 46 private: | 46 private: |
| 47 MOJO_DISALLOW_COPY_AND_ASSIGN(ChannelEndpointTest); | 47 MOJO_DISALLOW_COPY_AND_ASSIGN(ChannelEndpointTest); |
| 48 }; | 48 }; |
| 49 | 49 |
| 50 TEST_F(ChannelEndpointTest, Basic) { | 50 TEST_F(ChannelEndpointTest, Basic) { |
| 51 scoped_refptr<test::TestChannelEndpointClient> client0( | 51 auto client0 = MakeRefCounted<test::TestChannelEndpointClient>(); |
| 52 new test::TestChannelEndpointClient()); | 52 auto endpoint0 = MakeRefCounted<ChannelEndpoint>(client0.Clone(), 0); |
| 53 auto endpoint0 = MakeRefCounted<ChannelEndpoint>(client0.get(), 0); | |
| 54 client0->Init(0, endpoint0.Clone()); | 53 client0->Init(0, endpoint0.Clone()); |
| 55 channel(0)->SetBootstrapEndpoint(std::move(endpoint0)); | 54 channel(0)->SetBootstrapEndpoint(std::move(endpoint0)); |
| 56 | 55 |
| 57 scoped_refptr<test::TestChannelEndpointClient> client1( | 56 auto client1 = MakeRefCounted<test::TestChannelEndpointClient>(); |
| 58 new test::TestChannelEndpointClient()); | 57 auto endpoint1 = MakeRefCounted<ChannelEndpoint>(client1.Clone(), 1); |
| 59 auto endpoint1 = MakeRefCounted<ChannelEndpoint>(client1.get(), 1); | |
| 60 client1->Init(1, endpoint1.Clone()); | 58 client1->Init(1, endpoint1.Clone()); |
| 61 channel(1)->SetBootstrapEndpoint(endpoint1.Clone()); | 59 channel(1)->SetBootstrapEndpoint(endpoint1.Clone()); |
| 62 | 60 |
| 63 // We'll receive a message on channel/client 0. | 61 // We'll receive a message on channel/client 0. |
| 64 base::WaitableEvent read_event(true, false); | 62 base::WaitableEvent read_event(true, false); |
| 65 client0->SetReadEvent(&read_event); | 63 client0->SetReadEvent(&read_event); |
| 66 | 64 |
| 67 // Make a test message. | 65 // Make a test message. |
| 68 unsigned message_id = 0x12345678; | 66 unsigned message_id = 0x12345678; |
| 69 std::unique_ptr<MessageInTransit> send_message = | 67 std::unique_ptr<MessageInTransit> send_message = |
| (...skipping 15 matching lines...) Expand all Loading... |
| 85 ASSERT_EQ(1u, client0->NumMessages()); | 83 ASSERT_EQ(1u, client0->NumMessages()); |
| 86 std::unique_ptr<MessageInTransit> read_message = client0->PopMessage(); | 84 std::unique_ptr<MessageInTransit> read_message = client0->PopMessage(); |
| 87 ASSERT_TRUE(read_message); | 85 ASSERT_TRUE(read_message); |
| 88 test::VerifyTestMessage(read_message.get(), message_id); | 86 test::VerifyTestMessage(read_message.get(), message_id); |
| 89 } | 87 } |
| 90 | 88 |
| 91 // Checks that prequeued messages and messages sent at various stages later on | 89 // Checks that prequeued messages and messages sent at various stages later on |
| 92 // are all sent/received (and in the correct order). (Note: Due to the way | 90 // are all sent/received (and in the correct order). (Note: Due to the way |
| 93 // bootstrap endpoints work, the receiving side has to be set up first.) | 91 // bootstrap endpoints work, the receiving side has to be set up first.) |
| 94 TEST_F(ChannelEndpointTest, Prequeued) { | 92 TEST_F(ChannelEndpointTest, Prequeued) { |
| 95 scoped_refptr<test::TestChannelEndpointClient> client0( | 93 auto client0 = MakeRefCounted<test::TestChannelEndpointClient>(); |
| 96 new test::TestChannelEndpointClient()); | 94 auto endpoint0 = MakeRefCounted<ChannelEndpoint>(client0.Clone(), 0); |
| 97 auto endpoint0 = MakeRefCounted<ChannelEndpoint>(client0.get(), 0); | |
| 98 client0->Init(0, endpoint0.Clone()); | 95 client0->Init(0, endpoint0.Clone()); |
| 99 | 96 |
| 100 channel(0)->SetBootstrapEndpoint(std::move(endpoint0)); | 97 channel(0)->SetBootstrapEndpoint(std::move(endpoint0)); |
| 101 MessageInTransitQueue prequeued_messages; | 98 MessageInTransitQueue prequeued_messages; |
| 102 prequeued_messages.AddMessage(test::MakeTestMessage(1)); | 99 prequeued_messages.AddMessage(test::MakeTestMessage(1)); |
| 103 prequeued_messages.AddMessage(test::MakeTestMessage(2)); | 100 prequeued_messages.AddMessage(test::MakeTestMessage(2)); |
| 104 | 101 |
| 105 scoped_refptr<test::TestChannelEndpointClient> client1( | 102 auto client1 = MakeRefCounted<test::TestChannelEndpointClient>(); |
| 106 new test::TestChannelEndpointClient()); | |
| 107 auto endpoint1 = | 103 auto endpoint1 = |
| 108 MakeRefCounted<ChannelEndpoint>(client1.get(), 1, &prequeued_messages); | 104 MakeRefCounted<ChannelEndpoint>(client1.Clone(), 1, &prequeued_messages); |
| 109 client1->Init(1, endpoint1.Clone()); | 105 client1->Init(1, endpoint1.Clone()); |
| 110 | 106 |
| 111 EXPECT_TRUE(endpoint1->EnqueueMessage(test::MakeTestMessage(3))); | 107 EXPECT_TRUE(endpoint1->EnqueueMessage(test::MakeTestMessage(3))); |
| 112 EXPECT_TRUE(endpoint1->EnqueueMessage(test::MakeTestMessage(4))); | 108 EXPECT_TRUE(endpoint1->EnqueueMessage(test::MakeTestMessage(4))); |
| 113 | 109 |
| 114 channel(1)->SetBootstrapEndpoint(endpoint1.Clone()); | 110 channel(1)->SetBootstrapEndpoint(endpoint1.Clone()); |
| 115 | 111 |
| 116 EXPECT_TRUE(endpoint1->EnqueueMessage(test::MakeTestMessage(5))); | 112 EXPECT_TRUE(endpoint1->EnqueueMessage(test::MakeTestMessage(5))); |
| 117 EXPECT_TRUE(endpoint1->EnqueueMessage(test::MakeTestMessage(6))); | 113 EXPECT_TRUE(endpoint1->EnqueueMessage(test::MakeTestMessage(6))); |
| 118 | 114 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 130 for (unsigned message_id = 1; message_id <= 6; message_id++) { | 126 for (unsigned message_id = 1; message_id <= 6; message_id++) { |
| 131 std::unique_ptr<MessageInTransit> read_message = client0->PopMessage(); | 127 std::unique_ptr<MessageInTransit> read_message = client0->PopMessage(); |
| 132 ASSERT_TRUE(read_message); | 128 ASSERT_TRUE(read_message); |
| 133 test::VerifyTestMessage(read_message.get(), message_id); | 129 test::VerifyTestMessage(read_message.get(), message_id); |
| 134 } | 130 } |
| 135 } | 131 } |
| 136 | 132 |
| 137 } // namespace | 133 } // namespace |
| 138 } // namespace system | 134 } // namespace system |
| 139 } // namespace mojo | 135 } // namespace mojo |
| OLD | NEW |