Chromium Code Reviews| Index: base/task_scheduler/scheduler_worker_unittest.cc |
| diff --git a/base/task_scheduler/scheduler_worker_unittest.cc b/base/task_scheduler/scheduler_worker_unittest.cc |
| index 631fa7801102a6e3897896779cca9feed861f93d..47a35cbecac7d672156b7dcd555fabb24ca475e1 100644 |
| --- a/base/task_scheduler/scheduler_worker_unittest.cc |
| +++ b/base/task_scheduler/scheduler_worker_unittest.cc |
| @@ -352,11 +352,14 @@ namespace { |
| class ControllableDetachDelegate : public SchedulerWorkerDefaultDelegate { |
| public: |
| - ControllableDetachDelegate() |
| - : work_processed_(WaitableEvent::ResetPolicy::MANUAL, |
| + ControllableDetachDelegate(TaskTracker* task_tracker) |
| + : task_tracker_(task_tracker), |
| + work_processed_(WaitableEvent::ResetPolicy::MANUAL, |
| WaitableEvent::InitialState::NOT_SIGNALED), |
| detach_requested_(WaitableEvent::ResetPolicy::MANUAL, |
| - WaitableEvent::InitialState::NOT_SIGNALED) {} |
| + WaitableEvent::InitialState::NOT_SIGNALED) { |
| + EXPECT_TRUE(task_tracker_); |
|
danakj
2016/09/23 20:51:41
This is a case where I'd suggest ASSERT_TRUE becau
fdoray
2016/09/23 21:09:46
Sadly, we can't use ASSERT_TRUE in a constructor.
|
| + } |
| ~ControllableDetachDelegate() override = default; |
| @@ -376,6 +379,7 @@ class ControllableDetachDelegate : public SchedulerWorkerDefaultDelegate { |
| std::unique_ptr<Task> task(new Task( |
| FROM_HERE, Bind(&WaitableEvent::Signal, Unretained(&work_processed_)), |
| TaskTraits(), TimeDelta())); |
| + EXPECT_TRUE(task_tracker_->WillPostTask(task.get())); |
| sequence->PushTask(std::move(task)); |
| return sequence; |
| } |
| @@ -404,6 +408,7 @@ class ControllableDetachDelegate : public SchedulerWorkerDefaultDelegate { |
| void set_can_detach(bool can_detach) { can_detach_ = can_detach; } |
| private: |
| + TaskTracker* const task_tracker_; |
| bool work_requested_ = false; |
| bool can_detach_ = false; |
| WaitableEvent work_processed_; |
| @@ -418,7 +423,7 @@ TEST(TaskSchedulerWorkerTest, WorkerDetaches) { |
| TaskTracker task_tracker; |
| // Will be owned by SchedulerWorker. |
| ControllableDetachDelegate* delegate = |
| - new StrictMock<ControllableDetachDelegate>; |
| + new StrictMock<ControllableDetachDelegate>(&task_tracker); |
| delegate->set_can_detach(true); |
| EXPECT_CALL(*delegate, OnMainEntry(_, TimeDelta::Max())); |
| std::unique_ptr<SchedulerWorker> worker = |
| @@ -438,7 +443,7 @@ TEST(TaskSchedulerWorkerTest, WorkerDetachesAndWakes) { |
| TaskTracker task_tracker; |
| // Will be owned by SchedulerWorker. |
| ControllableDetachDelegate* delegate = |
| - new StrictMock<ControllableDetachDelegate>; |
| + new StrictMock<ControllableDetachDelegate>(&task_tracker); |
| delegate->set_can_detach(true); |
| EXPECT_CALL(*delegate, OnMainEntry(_, TimeDelta::Max())); |
| std::unique_ptr<SchedulerWorker> worker = |
| @@ -471,7 +476,7 @@ TEST(TaskSchedulerWorkerTest, CreateDetached) { |
| TaskTracker task_tracker; |
| // Will be owned by SchedulerWorker. |
| ControllableDetachDelegate* delegate = |
| - new StrictMock<ControllableDetachDelegate>; |
| + new StrictMock<ControllableDetachDelegate>(&task_tracker); |
| std::unique_ptr<SchedulerWorker> worker = |
| SchedulerWorker::Create( |
| ThreadPriority::NORMAL, WrapUnique(delegate), &task_tracker, |