Chromium Code Reviews| Index: content/child/scheduler/task_queue_manager_unittest.cc |
| diff --git a/content/child/scheduler/task_queue_manager_unittest.cc b/content/child/scheduler/task_queue_manager_unittest.cc |
| index 8fa5e29d7818820be834cf46c8192442352e82d8..1a803ec6334fe47f9050b09e3c8f7d0a4f3eda6a 100644 |
| --- a/content/child/scheduler/task_queue_manager_unittest.cc |
| +++ b/content/child/scheduler/task_queue_manager_unittest.cc |
| @@ -98,6 +98,11 @@ class ExplicitSelectorForTest : public SelectorForTest { |
| }; |
| class TaskQueueManagerTest : public testing::Test { |
| + public: |
| + void DeleteTaskQueueManager() { |
| + manager_.reset(); |
| + } |
| + |
| protected: |
| enum class SelectorType { |
| Automatic, |
| @@ -1036,5 +1041,19 @@ TEST_F(TaskQueueManagerTest, NextPendingDelayedTaskRunTime_MultipleQueues) { |
| manager_->NextPendingDelayedTaskRunTime()); |
| } |
| +TEST_F(TaskQueueManagerTest, DeleteTqmInTask) { |
|
Sami
2015/04/08 14:24:04
nit: s/Tqm/Manager/ or something since we're not r
alex clarke (OOO till 29th)
2015/04/08 14:33:05
Done.
|
| + Initialize(1u, SelectorType::Automatic); |
| + |
| + scoped_refptr<base::SingleThreadTaskRunner> runner = |
| + manager_->TaskRunnerForQueue(0); |
| + runner->PostTask(FROM_HERE, |
| + base::Bind(&TaskQueueManagerTest::DeleteTaskQueueManager, |
| + base::Unretained(this))); |
| + |
| + // This should not crash, assuming DoWork detects the TaskQueueManager has |
| + // been deleted. |
| + test_task_runner_->RunUntilIdle(); |
| +} |
| + |
| } // namespace |
| } // namespace content |