| Index: components/scheduler/child/scheduler_helper_unittest.cc
|
| diff --git a/components/scheduler/child/scheduler_helper_unittest.cc b/components/scheduler/child/scheduler_helper_unittest.cc
|
| index 0418c0be3250d172d00ad2ab9234bf1f5312a79d..8cfac923e1e66b57664fce8f8ec00afd8ce0079d 100644
|
| --- a/components/scheduler/child/scheduler_helper_unittest.cc
|
| +++ b/components/scheduler/child/scheduler_helper_unittest.cc
|
| @@ -150,7 +150,9 @@ class BaseSchedulerHelperTest : public testing::Test {
|
| nestable_task_runner_,
|
| required_quiescence_duration_before_long_idle_period)),
|
| default_task_runner_(scheduler_helper_->DefaultTaskRunner()),
|
| - idle_task_runner_(scheduler_helper_->IdleTaskRunner()) {
|
| + idle_task_runner_(scheduler_helper_->IdleTaskRunner()),
|
| + control_task_runner_(scheduler_helper_->ControlTaskRunner()),
|
| + shutdown_task_runner_(scheduler_helper_->ShutdownTaskRunner()) {
|
| scheduler_helper_->SetTimeSourceForTesting(
|
| make_scoped_ptr(new TestTimeSource(clock_)));
|
| scheduler_helper_->GetTaskQueueManagerForTesting()->SetTimeSourceForTesting(
|
| @@ -185,6 +187,8 @@ class BaseSchedulerHelperTest : public testing::Test {
|
| // task identifier specifies the task type:
|
| // - 'D': Default task
|
| // - 'I': Idle task
|
| + // - 'S': Shutdown task
|
| + // - 'T': conTrol task (to avoid confusion with compositor tasks)
|
| void PostTestTasks(std::vector<std::string>* run_order,
|
| const std::string& task_descriptor) {
|
| std::istringstream stream(task_descriptor);
|
| @@ -201,6 +205,14 @@ class BaseSchedulerHelperTest : public testing::Test {
|
| FROM_HERE,
|
| base::Bind(&AppendToVectorIdleTestTask, run_order, task));
|
| break;
|
| + case 'S':
|
| + shutdown_task_runner_->PostTask(
|
| + FROM_HERE, base::Bind(&AppendToVectorTestTask, run_order, task));
|
| + break;
|
| + case 'T':
|
| + control_task_runner_->PostTask(
|
| + FROM_HERE, base::Bind(&AppendToVectorTestTask, run_order, task));
|
| + break;
|
| default:
|
| NOTREACHED();
|
| }
|
| @@ -228,6 +240,8 @@ class BaseSchedulerHelperTest : public testing::Test {
|
| scoped_ptr<SchedulerHelperForTest> scheduler_helper_;
|
| scoped_refptr<base::SingleThreadTaskRunner> default_task_runner_;
|
| scoped_refptr<SingleThreadIdleTaskRunner> idle_task_runner_;
|
| + scoped_refptr<base::SingleThreadTaskRunner> control_task_runner_;
|
| + scoped_refptr<base::SingleThreadTaskRunner> shutdown_task_runner_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(BaseSchedulerHelperTest);
|
| };
|
| @@ -912,4 +926,15 @@ TEST_F(SchedulerHelperWithQuiescencePeriodTest,
|
| EXPECT_EQ(expected_deadline, deadline_in_task);
|
| }
|
|
|
| +TEST_F(SchedulerHelperTest,
|
| + TestPreShutdown_BlocksAllButControlAndShutdownTasks) {
|
| + std::vector<std::string> run_order;
|
| + PostTestTasks(&run_order, "D1 I1 T1");
|
| +
|
| + scheduler_helper_->PreShutdown();
|
| +
|
| + RunUntilIdle();
|
| + EXPECT_THAT(run_order, testing::ElementsAre(std::string("T1")));
|
| +}
|
| +
|
| } // namespace scheduler
|
|
|