 Chromium Code Reviews
 Chromium Code Reviews Issue 2829083002:
  Add constexpr TaskTraits constructor.  (Closed)
    
  
    Issue 2829083002:
  Add constexpr TaskTraits constructor.  (Closed) 
  | 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 |