Chromium Code Reviews| Index: base/task_scheduler/task_scheduler_impl_unittest.cc |
| diff --git a/base/task_scheduler/task_scheduler_impl_unittest.cc b/base/task_scheduler/task_scheduler_impl_unittest.cc |
| index b8d8fad8343808296bff8dd7acedba946bdf8e4e..1f363639039584da95339e7adb77bb284d571b03 100644 |
| --- a/base/task_scheduler/task_scheduler_impl_unittest.cc |
| +++ b/base/task_scheduler/task_scheduler_impl_unittest.cc |
| @@ -58,13 +58,13 @@ bool GetIOAllowed() { |
| // Verify that the current thread priority and I/O restrictions are appropriate |
| // to run a Task with |traits|. |
| // Note: ExecutionMode is verified inside TestTaskFactory. |
| -void VerifyTaskEnvironment(const TaskTraits& traits) { |
| +void VerifyTaskEnvironment(const TaskTraits* traits) { |
| const bool supports_background_priority = |
| Lock::HandlesMultipleThreadPriorities() && |
| PlatformThread::CanIncreaseCurrentThreadPriority(); |
| EXPECT_EQ(supports_background_priority && |
| - traits.priority() == TaskPriority::BACKGROUND |
| + traits->priority() == TaskPriority::BACKGROUND |
| ? ThreadPriority::BACKGROUND |
| : ThreadPriority::NORMAL, |
| PlatformThread::GetCurrentThreadPriority()); |
| @@ -72,7 +72,7 @@ void VerifyTaskEnvironment(const TaskTraits& traits) { |
| #if DCHECK_IS_ON() |
| // The #if above is required because GetIOAllowed() always returns true when |
| // !DCHECK_IS_ON(), even when |traits| don't allow file I/O. |
| - EXPECT_EQ(traits.may_block(), GetIOAllowed()); |
| + EXPECT_EQ(traits->may_block(), GetIOAllowed()); |
| #endif |
| // Verify that the thread the task is running on is named as expected. |
| @@ -80,20 +80,20 @@ void VerifyTaskEnvironment(const TaskTraits& traits) { |
| EXPECT_NE(std::string::npos, current_thread_name.find("TaskScheduler")); |
| EXPECT_NE(std::string::npos, |
| current_thread_name.find( |
| - traits.priority() == TaskPriority::BACKGROUND ? "Background" |
| - : "Foreground")); |
| - EXPECT_EQ(traits.may_block(), |
| + traits->priority() == TaskPriority::BACKGROUND ? "Background" |
| + : "Foreground")); |
| + EXPECT_EQ(traits->may_block(), |
| current_thread_name.find("Blocking") != std::string::npos); |
| } |
| -void VerifyTaskEnvironmentAndSignalEvent(const TaskTraits& traits, |
| +void VerifyTaskEnvironmentAndSignalEvent(const TaskTraits* traits, |
| WaitableEvent* event) { |
| DCHECK(event); |
| VerifyTaskEnvironment(traits); |
| event->Signal(); |
| } |
| -void VerifyTimeAndTaskEnvironmentAndSignalEvent(const TaskTraits& traits, |
| +void VerifyTimeAndTaskEnvironmentAndSignalEvent(const TaskTraits* traits, |
| TimeTicks expected_time, |
| WaitableEvent* event) { |
| DCHECK(event); |
| @@ -141,7 +141,7 @@ class ThreadPostingTasks : public SimpleThread { |
| const size_t kNumTasksPerThread = 150; |
| for (size_t i = 0; i < kNumTasksPerThread; ++i) { |
| factory_.PostTask(test::TestTaskFactory::PostNestedTask::NO, |
| - Bind(&VerifyTaskEnvironment, traits_)); |
| + Bind(&VerifyTaskEnvironment, Unretained(&traits_))); |
| } |
| } |
| @@ -219,8 +219,8 @@ TEST_P(TaskSchedulerImplTest, PostDelayedTaskWithTraitsNoDelay) { |
| WaitableEvent::InitialState::NOT_SIGNALED); |
| scheduler_.PostDelayedTaskWithTraits( |
| FROM_HERE, GetParam().traits, |
| - BindOnce(&VerifyTaskEnvironmentAndSignalEvent, GetParam().traits, |
| - Unretained(&task_ran)), |
| + BindOnce(&VerifyTaskEnvironmentAndSignalEvent, |
| + Unretained(&GetParam().traits), Unretained(&task_ran)), |
|
gab
2017/04/28 18:15:42
Bring back old Bind?
fdoray
2017/04/28 18:40:36
Done.
|
| TimeDelta()); |
| task_ran.Wait(); |
| } |
| @@ -235,7 +235,8 @@ TEST_P(TaskSchedulerImplTest, PostDelayedTaskWithTraitsWithDelay) { |
| WaitableEvent::InitialState::NOT_SIGNALED); |
| scheduler_.PostDelayedTaskWithTraits( |
| FROM_HERE, GetParam().traits, |
| - BindOnce(&VerifyTimeAndTaskEnvironmentAndSignalEvent, GetParam().traits, |
| + BindOnce(&VerifyTimeAndTaskEnvironmentAndSignalEvent, |
| + Unretained(&GetParam().traits), |
| TimeTicks::Now() + TestTimeouts::tiny_timeout(), |
| Unretained(&task_ran)), |
| TestTimeouts::tiny_timeout()); |
| @@ -255,8 +256,9 @@ TEST_P(TaskSchedulerImplTest, PostTasksViaTaskRunner) { |
| const size_t kNumTasksPerTest = 150; |
| for (size_t i = 0; i < kNumTasksPerTest; ++i) { |
| - factory.PostTask(test::TestTaskFactory::PostNestedTask::NO, |
| - Bind(&VerifyTaskEnvironment, GetParam().traits)); |
| + factory.PostTask( |
| + test::TestTaskFactory::PostNestedTask::NO, |
| + Bind(&VerifyTaskEnvironment, Unretained(&GetParam().traits))); |
| } |
| factory.WaitForAllTasksToRun(); |
| @@ -269,8 +271,8 @@ TEST_P(TaskSchedulerImplTest, PostDelayedTaskWithTraitsNoDelayBeforeStart) { |
| WaitableEvent::InitialState::NOT_SIGNALED); |
| scheduler_.PostDelayedTaskWithTraits( |
| FROM_HERE, GetParam().traits, |
| - BindOnce(&VerifyTaskEnvironmentAndSignalEvent, GetParam().traits, |
| - Unretained(&task_running)), |
| + BindOnce(&VerifyTaskEnvironmentAndSignalEvent, |
| + Unretained(&GetParam().traits), Unretained(&task_running)), |
| TimeDelta()); |
| // Wait a little bit to make sure that the task isn't scheduled before |
| @@ -291,7 +293,8 @@ TEST_P(TaskSchedulerImplTest, PostDelayedTaskWithTraitsWithDelayBeforeStart) { |
| WaitableEvent::InitialState::NOT_SIGNALED); |
| scheduler_.PostDelayedTaskWithTraits( |
| FROM_HERE, GetParam().traits, |
| - BindOnce(&VerifyTimeAndTaskEnvironmentAndSignalEvent, GetParam().traits, |
| + BindOnce(&VerifyTimeAndTaskEnvironmentAndSignalEvent, |
| + Unretained(&GetParam().traits), |
| TimeTicks::Now() + TestTimeouts::tiny_timeout(), |
| Unretained(&task_running)), |
| TestTimeouts::tiny_timeout()); |
| @@ -314,9 +317,9 @@ TEST_P(TaskSchedulerImplTest, PostTaskViaTaskRunnerBeforeStart) { |
| WaitableEvent::InitialState::NOT_SIGNALED); |
| CreateTaskRunnerWithTraitsAndExecutionMode(&scheduler_, GetParam().traits, |
| GetParam().execution_mode) |
| - ->PostTask(FROM_HERE, |
| - BindOnce(&VerifyTaskEnvironmentAndSignalEvent, |
| - GetParam().traits, Unretained(&task_running))); |
| + ->PostTask(FROM_HERE, BindOnce(&VerifyTaskEnvironmentAndSignalEvent, |
| + Unretained(&GetParam().traits), |
| + Unretained(&task_running))); |
| // Wait a little bit to make sure that the task isn't scheduled before |
| // Start(). Note: This test won't catch a case where the task runs just after |