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

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

Issue 1353683005: EDK: Convert remaining scoped_ptr -> std::unique_ptr in //mojo/edk/system. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 3 months 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/endpoint_relayer.cc ('k') | mojo/edk/system/incoming_endpoint.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/test/test_timeouts.h"
10 #include "mojo/edk/system/channel_endpoint_id.h" 10 #include "mojo/edk/system/channel_endpoint_id.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 base::WaitableEvent read_event(true, false); 92 base::WaitableEvent read_event(true, false);
93 client1b()->SetReadEvent(&read_event); 93 client1b()->SetReadEvent(&read_event);
94 EXPECT_EQ(0u, client1b()->NumMessages()); 94 EXPECT_EQ(0u, client1b()->NumMessages());
95 95
96 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(12345))); 96 EXPECT_TRUE(endpoint1a()->EnqueueMessage(test::MakeTestMessage(12345)));
97 97
98 EXPECT_TRUE(read_event.TimedWait(TestTimeouts::tiny_timeout())); 98 EXPECT_TRUE(read_event.TimedWait(TestTimeouts::tiny_timeout()));
99 client1b()->SetReadEvent(nullptr); 99 client1b()->SetReadEvent(nullptr);
100 100
101 ASSERT_EQ(1u, client1b()->NumMessages()); 101 ASSERT_EQ(1u, client1b()->NumMessages());
102 scoped_ptr<MessageInTransit> read_message = client1b()->PopMessage(); 102 std::unique_ptr<MessageInTransit> read_message = client1b()->PopMessage();
103 ASSERT_TRUE(read_message); 103 ASSERT_TRUE(read_message);
104 test::VerifyTestMessage(read_message.get(), 12345); 104 test::VerifyTestMessage(read_message.get(), 12345);
105 105
106 // Now do the same thing in the opposite direction. 106 // Now do the same thing in the opposite direction.
107 read_event.Reset(); 107 read_event.Reset();
108 client1a()->SetReadEvent(&read_event); 108 client1a()->SetReadEvent(&read_event);
109 EXPECT_EQ(0u, client1a()->NumMessages()); 109 EXPECT_EQ(0u, client1a()->NumMessages());
110 110
111 EXPECT_TRUE(endpoint1b()->EnqueueMessage(test::MakeTestMessage(67890))); 111 EXPECT_TRUE(endpoint1b()->EnqueueMessage(test::MakeTestMessage(67890)));
112 112
(...skipping 17 matching lines...) Expand all
130 client1b()->SetReadEvent(&read_event); 130 client1b()->SetReadEvent(&read_event);
131 for (size_t i = 0; client1b()->NumMessages() < 5 && i < 5; i++) { 131 for (size_t i = 0; client1b()->NumMessages() < 5 && i < 5; i++) {
132 EXPECT_TRUE(read_event.TimedWait(TestTimeouts::tiny_timeout())); 132 EXPECT_TRUE(read_event.TimedWait(TestTimeouts::tiny_timeout()));
133 read_event.Reset(); 133 read_event.Reset();
134 } 134 }
135 client1b()->SetReadEvent(nullptr); 135 client1b()->SetReadEvent(nullptr);
136 136
137 // Check the received messages. 137 // Check the received messages.
138 ASSERT_EQ(5u, client1b()->NumMessages()); 138 ASSERT_EQ(5u, client1b()->NumMessages());
139 for (unsigned message_id = 1; message_id <= 5; message_id++) { 139 for (unsigned message_id = 1; message_id <= 5; message_id++) {
140 scoped_ptr<MessageInTransit> read_message = client1b()->PopMessage(); 140 std::unique_ptr<MessageInTransit> read_message = client1b()->PopMessage();
141 ASSERT_TRUE(read_message); 141 ASSERT_TRUE(read_message);
142 test::VerifyTestMessage(read_message.get(), message_id); 142 test::VerifyTestMessage(read_message.get(), message_id);
143 } 143 }
144 } 144 }
145 145
146 // A simple test filter. It will filter test messages made with 146 // A simple test filter. It will filter test messages made with
147 // |test::MakeTestMessage()| with |id >= 1000|, and not filter other messages. 147 // |test::MakeTestMessage()| with |id >= 1000|, and not filter other messages.
148 class TestFilter : public EndpointRelayer::Filter { 148 class TestFilter : public EndpointRelayer::Filter {
149 public: 149 public:
150 // |filtered_messages| will receive (and own) filtered messages; it will be 150 // |filtered_messages| will receive (and own) filtered messages; it will be
(...skipping 12 matching lines...) Expand all
163 // Note: Recall that this is called under the |EndpointRelayer|'s lock. 163 // Note: Recall that this is called under the |EndpointRelayer|'s lock.
164 bool OnReadMessage(ChannelEndpoint* endpoint, 164 bool OnReadMessage(ChannelEndpoint* endpoint,
165 ChannelEndpoint* peer_endpoint, 165 ChannelEndpoint* peer_endpoint,
166 MessageInTransit* message) override { 166 MessageInTransit* message) override {
167 CHECK(endpoint); 167 CHECK(endpoint);
168 CHECK(peer_endpoint); 168 CHECK(peer_endpoint);
169 CHECK(message); 169 CHECK(message);
170 170
171 unsigned id = 0; 171 unsigned id = 0;
172 if (test::IsTestMessage(message, &id) && id >= 1000) { 172 if (test::IsTestMessage(message, &id) && id >= 1000) {
173 filtered_messages_->AddMessage(make_scoped_ptr(message)); 173 filtered_messages_->AddMessage(
174 std::unique_ptr<MessageInTransit>(message));
174 return true; 175 return true;
175 } 176 }
176 177
177 return false; 178 return false;
178 } 179 }
179 180
180 private: 181 private:
181 MessageInTransitQueue* const filtered_messages_; 182 MessageInTransitQueue* const filtered_messages_;
182 183
183 MOJO_DISALLOW_COPY_AND_ASSIGN(TestFilter); 184 MOJO_DISALLOW_COPY_AND_ASSIGN(TestFilter);
(...skipping 16 matching lines...) Expand all
200 client1b()->SetReadEvent(&read_event); 201 client1b()->SetReadEvent(&read_event);
201 for (size_t i = 0; client1b()->NumMessages() < 5 && i < 5; i++) { 202 for (size_t i = 0; client1b()->NumMessages() < 5 && i < 5; i++) {
202 EXPECT_TRUE(read_event.TimedWait(TestTimeouts::tiny_timeout())); 203 EXPECT_TRUE(read_event.TimedWait(TestTimeouts::tiny_timeout()));
203 read_event.Reset(); 204 read_event.Reset();
204 } 205 }
205 client1b()->SetReadEvent(nullptr); 206 client1b()->SetReadEvent(nullptr);
206 207
207 // Check the received messages: We should get "1"-"5". 208 // Check the received messages: We should get "1"-"5".
208 ASSERT_EQ(5u, client1b()->NumMessages()); 209 ASSERT_EQ(5u, client1b()->NumMessages());
209 for (unsigned message_id = 1; message_id <= 5; message_id++) { 210 for (unsigned message_id = 1; message_id <= 5; message_id++) {
210 scoped_ptr<MessageInTransit> read_message = client1b()->PopMessage(); 211 std::unique_ptr<MessageInTransit> read_message = client1b()->PopMessage();
211 ASSERT_TRUE(read_message); 212 ASSERT_TRUE(read_message);
212 test::VerifyTestMessage(read_message.get(), message_id); 213 test::VerifyTestMessage(read_message.get(), message_id);
213 } 214 }
214 215
215 // Reset the filter, so we can safely examine |filtered_messages|. 216 // Reset the filter, so we can safely examine |filtered_messages|.
216 relayer()->SetFilter(nullptr); 217 relayer()->SetFilter(nullptr);
217 218
218 // Note that since "5" was sent after "1003" and it the former was received, 219 // Note that since "5" was sent after "1003" and it the former was received,
219 // the latter must have also been "received"/filtered. 220 // the latter must have also been "received"/filtered.
220 ASSERT_EQ(3u, filtered_messages.Size()); 221 ASSERT_EQ(3u, filtered_messages.Size());
221 for (unsigned message_id = 1001; message_id <= 1003; message_id++) { 222 for (unsigned message_id = 1001; message_id <= 1003; message_id++) {
222 scoped_ptr<MessageInTransit> message = filtered_messages.GetMessage(); 223 std::unique_ptr<MessageInTransit> message = filtered_messages.GetMessage();
223 ASSERT_TRUE(message); 224 ASSERT_TRUE(message);
224 test::VerifyTestMessage(message.get(), message_id); 225 test::VerifyTestMessage(message.get(), message_id);
225 } 226 }
226 } 227 }
227 228
228 // TODO(vtl): Add some "shutdown" tests. 229 // TODO(vtl): Add some "shutdown" tests.
229 230
230 } // namespace 231 } // namespace
231 } // namespace system 232 } // namespace system
232 } // namespace mojo 233 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/edk/system/endpoint_relayer.cc ('k') | mojo/edk/system/incoming_endpoint.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698