| Index: components/scheduler/base/task_queue_manager_unittest.cc
|
| diff --git a/components/scheduler/base/task_queue_manager_unittest.cc b/components/scheduler/base/task_queue_manager_unittest.cc
|
| index d5ad8e5a0650bedfd21cbb5b06c59e82898be773..251ac56523ae93077f53192525332fa6f95d4c9c 100644
|
| --- a/components/scheduler/base/task_queue_manager_unittest.cc
|
| +++ b/components/scheduler/base/task_queue_manager_unittest.cc
|
| @@ -1458,4 +1458,28 @@ TEST_F(TaskQueueManagerTest, TimeDomainMigration) {
|
| manager_->UnregisterTimeDomain(domain_b);
|
| }
|
|
|
| +namespace {
|
| +void ChromiumRunloopInspectionTask(
|
| + scoped_refptr<cc::OrderedSimpleTaskRunner> test_task_runner) {
|
| + EXPECT_EQ(1u, test_task_runner->NumPendingTasks());
|
| +}
|
| +} // namespace
|
| +
|
| +TEST_F(TaskQueueManagerTest, NumberOfPendingTasksOnChromiumRunLoop) {
|
| + Initialize(1u);
|
| +
|
| + // NOTE because tasks posted to the chromiumrun loop are not cancellable, we
|
| + // will end up with a lot more tasks posted if the delayed tasks were posted
|
| + // in the reverse order.
|
| + // TODO(alexclarke): Consider talking to the message pump directly.
|
| + test_task_runner_->SetAutoAdvanceNowToPendingTasks(true);
|
| + for (int i = 1; i < 100; i++) {
|
| + runners_[0]->PostDelayedTask(
|
| + FROM_HERE,
|
| + base::Bind(&ChromiumRunloopInspectionTask, test_task_runner_),
|
| + base::TimeDelta::FromMilliseconds(i));
|
| + }
|
| + test_task_runner_->RunUntilIdle();
|
| +}
|
| +
|
| } // namespace scheduler
|
|
|