Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Side by Side Diff: mojo/edk/system/endpoint_relayer_unittest.cc

Issue 1430593005: EDK: Remove (direct) dependencies of //mojo/edk/system on //base/test. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojo/edk/system/channel_endpoint_unittest.cc ('k') | mojo/edk/system/ipc_support_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/endpoint_relayer.h" 5 #include "mojo/edk/system/endpoint_relayer.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/synchronization/waitable_event.h" 8 #include "base/synchronization/waitable_event.h"
9 #include "base/test/test_timeouts.h" 9 #include "base/time/time.h"
10 #include "mojo/edk/system/channel_endpoint_id.h" 10 #include "mojo/edk/system/channel_endpoint_id.h"
11 #include "mojo/edk/system/channel_test_base.h" 11 #include "mojo/edk/system/channel_test_base.h"
12 #include "mojo/edk/system/message_in_transit_queue.h" 12 #include "mojo/edk/system/message_in_transit_queue.h"
13 #include "mojo/edk/system/message_in_transit_test_utils.h" 13 #include "mojo/edk/system/message_in_transit_test_utils.h"
14 #include "mojo/edk/system/ref_ptr.h" 14 #include "mojo/edk/system/ref_ptr.h"
15 #include "mojo/edk/system/test/timeouts.h"
15 #include "mojo/edk/system/test_channel_endpoint_client.h" 16 #include "mojo/edk/system/test_channel_endpoint_client.h"
16 #include "mojo/edk/util/make_unique.h" 17 #include "mojo/edk/util/make_unique.h"
17 #include "mojo/public/cpp/system/macros.h" 18 #include "mojo/public/cpp/system/macros.h"
18 19
19 namespace mojo { 20 namespace mojo {
20 namespace system { 21 namespace system {
21 namespace { 22 namespace {
22 23
23 class EndpointRelayerTest : public test::ChannelTestBase { 24 class EndpointRelayerTest : public test::ChannelTestBase {
24 public: 25 public:
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 MOJO_DISALLOW_COPY_AND_ASSIGN(EndpointRelayerTest); 90 MOJO_DISALLOW_COPY_AND_ASSIGN(EndpointRelayerTest);
90 }; 91 };
91 92
92 TEST_F(EndpointRelayerTest, Basic) { 93 TEST_F(EndpointRelayerTest, Basic) {
93 base::WaitableEvent read_event(true, false); 94 base::WaitableEvent read_event(true, false);
94 client1b()->SetReadEvent(&read_event); 95 client1b()->SetReadEvent(&read_event);
95 EXPECT_EQ(0u, client1b()->NumMessages()); 96 EXPECT_EQ(0u, client1b()->NumMessages());
96 97
97 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(12345))); 98 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(12345)));
98 99
99 EXPECT_TRUE(read_event.TimedWait(TestTimeouts::tiny_timeout())); 100 EXPECT_TRUE(read_event.TimedWait(base::TimeDelta::FromMicroseconds(
101 static_cast<int64_t>(test::TinyTimeout()))));
100 client1b()->SetReadEvent(nullptr); 102 client1b()->SetReadEvent(nullptr);
101 103
102 ASSERT_EQ(1u, client1b()->NumMessages()); 104 ASSERT_EQ(1u, client1b()->NumMessages());
103 std::unique_ptr<MessageInTransit> read_message = client1b()->PopMessage(); 105 std::unique_ptr<MessageInTransit> read_message = client1b()->PopMessage();
104 ASSERT_TRUE(read_message); 106 ASSERT_TRUE(read_message);
105 test::VerifyTestMessage(read_message.get(), 12345); 107 test::VerifyTestMessage(read_message.get(), 12345);
106 108
107 // Now do the same thing in the opposite direction. 109 // Now do the same thing in the opposite direction.
108 read_event.Reset(); 110 read_event.Reset();
109 client1a()->SetReadEvent(&read_event); 111 client1a()->SetReadEvent(&read_event);
110 EXPECT_EQ(0u, client1a()->NumMessages()); 112 EXPECT_EQ(0u, client1a()->NumMessages());
111 113
112 EXPECT_TRUE(endpoint1b()->EnqueueMessage(test::MakeTestMessage(67890))); 114 EXPECT_TRUE(endpoint1b()->EnqueueMessage(test::MakeTestMessage(67890)));
113 115
114 EXPECT_TRUE(read_event.TimedWait(TestTimeouts::tiny_timeout())); 116 EXPECT_TRUE(read_event.TimedWait(base::TimeDelta::FromMicroseconds(
117 static_cast<int64_t>(test::TinyTimeout()))));
115 client1a()->SetReadEvent(nullptr); 118 client1a()->SetReadEvent(nullptr);
116 119
117 ASSERT_EQ(1u, client1a()->NumMessages()); 120 ASSERT_EQ(1u, client1a()->NumMessages());
118 read_message = client1a()->PopMessage(); 121 read_message = client1a()->PopMessage();
119 ASSERT_TRUE(read_message); 122 ASSERT_TRUE(read_message);
120 test::VerifyTestMessage(read_message.get(), 67890); 123 test::VerifyTestMessage(read_message.get(), 67890);
121 } 124 }
122 125
123 TEST_F(EndpointRelayerTest, MultipleMessages) { 126 TEST_F(EndpointRelayerTest, MultipleMessages) {
124 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(1))); 127 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(1)));
125 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(2))); 128 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(2)));
126 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(3))); 129 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(3)));
127 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(4))); 130 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(4)));
128 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(5))); 131 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(5)));
129 132
130 base::WaitableEvent read_event(true, false); 133 base::WaitableEvent read_event(true, false);
131 client1b()->SetReadEvent(&read_event); 134 client1b()->SetReadEvent(&read_event);
132 for (size_t i = 0; client1b()->NumMessages() < 5 && i < 5; i++) { 135 for (size_t i = 0; client1b()->NumMessages() < 5 && i < 5; i++) {
133 EXPECT_TRUE(read_event.TimedWait(TestTimeouts::tiny_timeout())); 136 EXPECT_TRUE(read_event.TimedWait(base::TimeDelta::FromMicroseconds(
137 static_cast<int64_t>(test::TinyTimeout()))));
134 read_event.Reset(); 138 read_event.Reset();
135 } 139 }
136 client1b()->SetReadEvent(nullptr); 140 client1b()->SetReadEvent(nullptr);
137 141
138 // Check the received messages. 142 // Check the received messages.
139 ASSERT_EQ(5u, client1b()->NumMessages()); 143 ASSERT_EQ(5u, client1b()->NumMessages());
140 for (unsigned message_id = 1; message_id <= 5; message_id++) { 144 for (unsigned message_id = 1; message_id <= 5; message_id++) {
141 std::unique_ptr<MessageInTransit> read_message = client1b()->PopMessage(); 145 std::unique_ptr<MessageInTransit> read_message = client1b()->PopMessage();
142 ASSERT_TRUE(read_message); 146 ASSERT_TRUE(read_message);
143 test::VerifyTestMessage(read_message.get(), message_id); 147 test::VerifyTestMessage(read_message.get(), message_id);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(1001))); 198 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(1001)));
195 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(3))); 199 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(3)));
196 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(4))); 200 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(4)));
197 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(1002))); 201 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(1002)));
198 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(1003))); 202 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(1003)));
199 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(5))); 203 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(5)));
200 204
201 base::WaitableEvent read_event(true, false); 205 base::WaitableEvent read_event(true, false);
202 client1b()->SetReadEvent(&read_event); 206 client1b()->SetReadEvent(&read_event);
203 for (size_t i = 0; client1b()->NumMessages() < 5 && i < 5; i++) { 207 for (size_t i = 0; client1b()->NumMessages() < 5 && i < 5; i++) {
204 EXPECT_TRUE(read_event.TimedWait(TestTimeouts::tiny_timeout())); 208 EXPECT_TRUE(read_event.TimedWait(base::TimeDelta::FromMicroseconds(
209 static_cast<int64_t>(test::TinyTimeout()))));
205 read_event.Reset(); 210 read_event.Reset();
206 } 211 }
207 client1b()->SetReadEvent(nullptr); 212 client1b()->SetReadEvent(nullptr);
208 213
209 // Check the received messages: We should get "1"-"5". 214 // Check the received messages: We should get "1"-"5".
210 ASSERT_EQ(5u, client1b()->NumMessages()); 215 ASSERT_EQ(5u, client1b()->NumMessages());
211 for (unsigned message_id = 1; message_id <= 5; message_id++) { 216 for (unsigned message_id = 1; message_id <= 5; message_id++) {
212 std::unique_ptr<MessageInTransit> read_message = client1b()->PopMessage(); 217 std::unique_ptr<MessageInTransit> read_message = client1b()->PopMessage();
213 ASSERT_TRUE(read_message); 218 ASSERT_TRUE(read_message);
214 test::VerifyTestMessage(read_message.get(), message_id); 219 test::VerifyTestMessage(read_message.get(), message_id);
(...skipping 10 matching lines...) Expand all
225 ASSERT_TRUE(message); 230 ASSERT_TRUE(message);
226 test::VerifyTestMessage(message.get(), message_id); 231 test::VerifyTestMessage(message.get(), message_id);
227 } 232 }
228 } 233 }
229 234
230 // TODO(vtl): Add some "shutdown" tests. 235 // TODO(vtl): Add some "shutdown" tests.
231 236
232 } // namespace 237 } // namespace
233 } // namespace system 238 } // namespace system
234 } // namespace mojo 239 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/edk/system/channel_endpoint_unittest.cc ('k') | mojo/edk/system/ipc_support_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698