| 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 "components/scheduler/child/idle_helper.h" | 5 #include "components/scheduler/child/idle_helper.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| 11 #include "base/memory/ptr_util.h" | 11 #include "base/memory/ptr_util.h" |
| 12 #include "base/run_loop.h" |
| 12 #include "base/test/simple_test_tick_clock.h" | 13 #include "base/test/simple_test_tick_clock.h" |
| 13 #include "cc/test/ordered_simple_task_runner.h" | 14 #include "cc/test/ordered_simple_task_runner.h" |
| 14 #include "components/scheduler/base/real_time_domain.h" | 15 #include "components/scheduler/base/real_time_domain.h" |
| 15 #include "components/scheduler/base/task_queue.h" | 16 #include "components/scheduler/base/task_queue.h" |
| 16 #include "components/scheduler/base/task_queue_manager.h" | 17 #include "components/scheduler/base/task_queue_manager.h" |
| 17 #include "components/scheduler/base/test_time_source.h" | 18 #include "components/scheduler/base/test_time_source.h" |
| 18 #include "components/scheduler/child/scheduler_helper.h" | 19 #include "components/scheduler/child/scheduler_helper.h" |
| 19 #include "components/scheduler/child/scheduler_tqm_delegate_for_test.h" | 20 #include "components/scheduler/child/scheduler_tqm_delegate_for_test.h" |
| 20 #include "components/scheduler/child/scheduler_tqm_delegate_impl.h" | 21 #include "components/scheduler/child/scheduler_tqm_delegate_impl.h" |
| 21 #include "testing/gmock/include/gmock/gmock.h" | 22 #include "testing/gmock/include/gmock/gmock.h" |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 208 } | 209 } |
| 209 | 210 |
| 210 void TearDown() override { | 211 void TearDown() override { |
| 211 DCHECK(!mock_task_runner_.get() || !message_loop_.get()); | 212 DCHECK(!mock_task_runner_.get() || !message_loop_.get()); |
| 212 if (mock_task_runner_.get()) { | 213 if (mock_task_runner_.get()) { |
| 213 // Check that all tests stop posting tasks. | 214 // Check that all tests stop posting tasks. |
| 214 mock_task_runner_->SetAutoAdvanceNowToPendingTasks(true); | 215 mock_task_runner_->SetAutoAdvanceNowToPendingTasks(true); |
| 215 while (mock_task_runner_->RunUntilIdle()) { | 216 while (mock_task_runner_->RunUntilIdle()) { |
| 216 } | 217 } |
| 217 } else { | 218 } else { |
| 218 message_loop_->RunUntilIdle(); | 219 base::RunLoop().RunUntilIdle(); |
| 219 } | 220 } |
| 220 } | 221 } |
| 221 | 222 |
| 222 void RunUntilIdle() { | 223 void RunUntilIdle() { |
| 223 // Only one of mock_task_runner_ or message_loop_ should be set. | 224 // Only one of mock_task_runner_ or message_loop_ should be set. |
| 224 DCHECK(!mock_task_runner_.get() || !message_loop_.get()); | 225 DCHECK(!mock_task_runner_.get() || !message_loop_.get()); |
| 225 if (mock_task_runner_.get()) | 226 if (mock_task_runner_.get()) |
| 226 mock_task_runner_->RunUntilIdle(); | 227 mock_task_runner_->RunUntilIdle(); |
| 227 else | 228 else |
| 228 message_loop_->RunUntilIdle(); | 229 base::RunLoop().RunUntilIdle(); |
| 229 } | 230 } |
| 230 | 231 |
| 231 template <typename E> | 232 template <typename E> |
| 232 static void CallForEachEnumValue(E first, | 233 static void CallForEachEnumValue(E first, |
| 233 E last, | 234 E last, |
| 234 const char* (*function)(E)) { | 235 const char* (*function)(E)) { |
| 235 for (E val = first; val < last; | 236 for (E val = first; val < last; |
| 236 val = static_cast<E>(static_cast<int>(val) + 1)) { | 237 val = static_cast<E>(static_cast<int>(val) + 1)) { |
| 237 (*function)(val); | 238 (*function)(val); |
| 238 } | 239 } |
| (...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 538 for (std::pair<SingleThreadIdleTaskRunner::IdleTask, bool>& pair : *tasks) { | 539 for (std::pair<SingleThreadIdleTaskRunner::IdleTask, bool>& pair : *tasks) { |
| 539 if (pair.second) { | 540 if (pair.second) { |
| 540 idle_task_runner_->PostIdleTask(FROM_HERE, pair.first); | 541 idle_task_runner_->PostIdleTask(FROM_HERE, pair.first); |
| 541 } else { | 542 } else { |
| 542 idle_task_runner_->PostNonNestableIdleTask(FROM_HERE, pair.first); | 543 idle_task_runner_->PostNonNestableIdleTask(FROM_HERE, pair.first); |
| 543 } | 544 } |
| 544 } | 545 } |
| 545 idle_helper_->StartIdlePeriod( | 546 idle_helper_->StartIdlePeriod( |
| 546 IdleHelper::IdlePeriodState::IN_SHORT_IDLE_PERIOD, clock_->NowTicks(), | 547 IdleHelper::IdlePeriodState::IN_SHORT_IDLE_PERIOD, clock_->NowTicks(), |
| 547 clock_->NowTicks() + base::TimeDelta::FromMilliseconds(10)); | 548 clock_->NowTicks() + base::TimeDelta::FromMilliseconds(10)); |
| 548 message_loop_->RunUntilIdle(); | 549 base::RunLoop().RunUntilIdle(); |
| 549 } | 550 } |
| 550 | 551 |
| 551 void SetUp() override { | 552 void SetUp() override { |
| 552 EXPECT_CALL(*idle_helper_, OnIdlePeriodStarted()).Times(AnyNumber()); | 553 EXPECT_CALL(*idle_helper_, OnIdlePeriodStarted()).Times(AnyNumber()); |
| 553 EXPECT_CALL(*idle_helper_, OnIdlePeriodEnded()).Times(AnyNumber()); | 554 EXPECT_CALL(*idle_helper_, OnIdlePeriodEnded()).Times(AnyNumber()); |
| 554 } | 555 } |
| 555 | 556 |
| 556 private: | 557 private: |
| 557 DISALLOW_COPY_AND_ASSIGN(IdleHelperWithMessageLoopTest); | 558 DISALLOW_COPY_AND_ASSIGN(IdleHelperWithMessageLoopTest); |
| 558 }; | 559 }; |
| (...skipping 591 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1150 EXPECT_EQ(0, run_count); | 1151 EXPECT_EQ(0, run_count); |
| 1151 | 1152 |
| 1152 default_task_runner_->PostDelayedTask(FROM_HERE, base::Bind(&NullTask), | 1153 default_task_runner_->PostDelayedTask(FROM_HERE, base::Bind(&NullTask), |
| 1153 more_than_min_deadline_duration); | 1154 more_than_min_deadline_duration); |
| 1154 idle_helper_->EnableLongIdlePeriod(); | 1155 idle_helper_->EnableLongIdlePeriod(); |
| 1155 RunUntilIdle(); | 1156 RunUntilIdle(); |
| 1156 EXPECT_EQ(1, run_count); | 1157 EXPECT_EQ(1, run_count); |
| 1157 } | 1158 } |
| 1158 | 1159 |
| 1159 } // namespace scheduler | 1160 } // namespace scheduler |
| OLD | NEW |