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 <stddef.h> | 5 #include <stddef.h> |
6 #include <stdint.h> | 6 #include <stdint.h> |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 void CreateIntegerSender(IntegerSenderAssociatedPtrInfo* ptr_info, | 138 void CreateIntegerSender(IntegerSenderAssociatedPtrInfo* ptr_info, |
139 IntegerSenderAssociatedRequest* request) { | 139 IntegerSenderAssociatedRequest* request) { |
140 scoped_refptr<MultiplexRouter> router0; | 140 scoped_refptr<MultiplexRouter> router0; |
141 scoped_refptr<MultiplexRouter> router1; | 141 scoped_refptr<MultiplexRouter> router1; |
142 CreateRouterPair(&router0, &router1); | 142 CreateRouterPair(&router0, &router1); |
143 CreateIntegerSenderWithExistingRouters(router1, ptr_info, router0, request); | 143 CreateIntegerSenderWithExistingRouters(router1, ptr_info, router0, request); |
144 } | 144 } |
145 | 145 |
146 // Okay to call from any thread. | 146 // Okay to call from any thread. |
147 void QuitRunLoop(base::RunLoop* run_loop) { | 147 void QuitRunLoop(base::RunLoop* run_loop) { |
148 if (main_runner_->RunsTasksOnCurrentThread()) { | 148 if (main_runner_->RunsTasksInCurrentSequence()) { |
149 run_loop->Quit(); | 149 run_loop->Quit(); |
150 } else { | 150 } else { |
151 main_runner_->PostTask( | 151 main_runner_->PostTask( |
152 FROM_HERE, | 152 FROM_HERE, |
153 base::Bind(&AssociatedInterfaceTest::QuitRunLoop, | 153 base::Bind(&AssociatedInterfaceTest::QuitRunLoop, |
154 base::Unretained(this), base::Unretained(run_loop))); | 154 base::Unretained(this), base::Unretained(run_loop))); |
155 } | 155 } |
156 } | 156 } |
157 | 157 |
158 private: | 158 private: |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 public: | 248 public: |
249 TestSender() | 249 TestSender() |
250 : task_runner_(base::CreateSequencedTaskRunnerWithTraits({})), | 250 : task_runner_(base::CreateSequencedTaskRunnerWithTraits({})), |
251 next_sender_(nullptr), | 251 next_sender_(nullptr), |
252 max_value_to_send_(-1) {} | 252 max_value_to_send_(-1) {} |
253 | 253 |
254 // The following three methods are called on the corresponding sender thread. | 254 // The following three methods are called on the corresponding sender thread. |
255 void SetUp(IntegerSenderAssociatedPtrInfo ptr_info, | 255 void SetUp(IntegerSenderAssociatedPtrInfo ptr_info, |
256 TestSender* next_sender, | 256 TestSender* next_sender, |
257 int32_t max_value_to_send) { | 257 int32_t max_value_to_send) { |
258 CHECK(task_runner()->RunsTasksOnCurrentThread()); | 258 CHECK(task_runner()->RunsTasksInCurrentSequence()); |
259 | 259 |
260 ptr_.Bind(std::move(ptr_info)); | 260 ptr_.Bind(std::move(ptr_info)); |
261 next_sender_ = next_sender ? next_sender : this; | 261 next_sender_ = next_sender ? next_sender : this; |
262 max_value_to_send_ = max_value_to_send; | 262 max_value_to_send_ = max_value_to_send; |
263 } | 263 } |
264 | 264 |
265 void Send(int32_t value) { | 265 void Send(int32_t value) { |
266 CHECK(task_runner()->RunsTasksOnCurrentThread()); | 266 CHECK(task_runner()->RunsTasksInCurrentSequence()); |
267 | 267 |
268 if (value > max_value_to_send_) | 268 if (value > max_value_to_send_) |
269 return; | 269 return; |
270 | 270 |
271 ptr_->Send(value); | 271 ptr_->Send(value); |
272 | 272 |
273 next_sender_->task_runner()->PostTask( | 273 next_sender_->task_runner()->PostTask( |
274 FROM_HERE, | 274 FROM_HERE, |
275 base::Bind(&TestSender::Send, base::Unretained(next_sender_), ++value)); | 275 base::Bind(&TestSender::Send, base::Unretained(next_sender_), ++value)); |
276 } | 276 } |
277 | 277 |
278 void TearDown() { | 278 void TearDown() { |
279 CHECK(task_runner()->RunsTasksOnCurrentThread()); | 279 CHECK(task_runner()->RunsTasksInCurrentSequence()); |
280 | 280 |
281 ptr_.reset(); | 281 ptr_.reset(); |
282 } | 282 } |
283 | 283 |
284 base::SequencedTaskRunner* task_runner() { return task_runner_.get(); } | 284 base::SequencedTaskRunner* task_runner() { return task_runner_.get(); } |
285 | 285 |
286 private: | 286 private: |
287 scoped_refptr<base::SequencedTaskRunner> task_runner_; | 287 scoped_refptr<base::SequencedTaskRunner> task_runner_; |
288 TestSender* next_sender_; | 288 TestSender* next_sender_; |
289 int32_t max_value_to_send_; | 289 int32_t max_value_to_send_; |
290 | 290 |
291 AssociatedInterfacePtr<IntegerSender> ptr_; | 291 AssociatedInterfacePtr<IntegerSender> ptr_; |
292 }; | 292 }; |
293 | 293 |
294 class TestReceiver { | 294 class TestReceiver { |
295 public: | 295 public: |
296 TestReceiver() | 296 TestReceiver() |
297 : task_runner_(base::CreateSequencedTaskRunnerWithTraits({})), | 297 : task_runner_(base::CreateSequencedTaskRunnerWithTraits({})), |
298 expected_calls_(0) {} | 298 expected_calls_(0) {} |
299 | 299 |
300 void SetUp(AssociatedInterfaceRequest<IntegerSender> request0, | 300 void SetUp(AssociatedInterfaceRequest<IntegerSender> request0, |
301 AssociatedInterfaceRequest<IntegerSender> request1, | 301 AssociatedInterfaceRequest<IntegerSender> request1, |
302 size_t expected_calls, | 302 size_t expected_calls, |
303 const base::Closure& notify_finish) { | 303 const base::Closure& notify_finish) { |
304 CHECK(task_runner()->RunsTasksOnCurrentThread()); | 304 CHECK(task_runner()->RunsTasksInCurrentSequence()); |
305 | 305 |
306 impl0_.reset(new IntegerSenderImpl(std::move(request0))); | 306 impl0_.reset(new IntegerSenderImpl(std::move(request0))); |
307 impl0_->set_notify_send_method_called( | 307 impl0_->set_notify_send_method_called( |
308 base::Bind(&TestReceiver::SendMethodCalled, base::Unretained(this))); | 308 base::Bind(&TestReceiver::SendMethodCalled, base::Unretained(this))); |
309 impl1_.reset(new IntegerSenderImpl(std::move(request1))); | 309 impl1_.reset(new IntegerSenderImpl(std::move(request1))); |
310 impl1_->set_notify_send_method_called( | 310 impl1_->set_notify_send_method_called( |
311 base::Bind(&TestReceiver::SendMethodCalled, base::Unretained(this))); | 311 base::Bind(&TestReceiver::SendMethodCalled, base::Unretained(this))); |
312 | 312 |
313 expected_calls_ = expected_calls; | 313 expected_calls_ = expected_calls; |
314 notify_finish_ = notify_finish; | 314 notify_finish_ = notify_finish; |
315 } | 315 } |
316 | 316 |
317 void TearDown() { | 317 void TearDown() { |
318 CHECK(task_runner()->RunsTasksOnCurrentThread()); | 318 CHECK(task_runner()->RunsTasksInCurrentSequence()); |
319 | 319 |
320 impl0_.reset(); | 320 impl0_.reset(); |
321 impl1_.reset(); | 321 impl1_.reset(); |
322 } | 322 } |
323 | 323 |
324 base::SequencedTaskRunner* task_runner() { return task_runner_.get(); } | 324 base::SequencedTaskRunner* task_runner() { return task_runner_.get(); } |
325 const std::vector<int32_t>& values() const { return values_; } | 325 const std::vector<int32_t>& values() const { return values_; } |
326 | 326 |
327 private: | 327 private: |
328 void SendMethodCalled(int32_t value) { | 328 void SendMethodCalled(int32_t value) { |
(...skipping 849 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1178 | 1178 |
1179 TEST_F(AssociatedInterfaceTest, GetIsolatedInterface) { | 1179 TEST_F(AssociatedInterfaceTest, GetIsolatedInterface) { |
1180 IntegerSenderAssociatedPtr sender; | 1180 IntegerSenderAssociatedPtr sender; |
1181 GetIsolatedInterface(MakeRequest(&sender).PassHandle()); | 1181 GetIsolatedInterface(MakeRequest(&sender).PassHandle()); |
1182 sender->Send(42); | 1182 sender->Send(42); |
1183 } | 1183 } |
1184 | 1184 |
1185 } // namespace | 1185 } // namespace |
1186 } // namespace test | 1186 } // namespace test |
1187 } // namespace mojo | 1187 } // namespace mojo |
OLD | NEW |