Chromium Code Reviews| Index: base/task_scheduler/scheduler_single_thread_task_runner_manager_unittest.cc |
| diff --git a/base/task_scheduler/scheduler_single_thread_task_runner_manager_unittest.cc b/base/task_scheduler/scheduler_single_thread_task_runner_manager_unittest.cc |
| index 0b7a7e8d53eb2e71f6be293589fb0bdc909f56f2..17333e9f419e4b029787ddfbb2fc2a1676c1b6c9 100644 |
| --- a/base/task_scheduler/scheduler_single_thread_task_runner_manager_unittest.cc |
| +++ b/base/task_scheduler/scheduler_single_thread_task_runner_manager_unittest.cc |
| @@ -32,32 +32,6 @@ namespace internal { |
| namespace { |
| -enum WorkerPoolType : size_t { |
| - BACKGROUND_WORKER_POOL = 0, |
| - FOREGROUND_WORKER_POOL, |
| -}; |
| - |
| -static size_t GetThreadPoolIndexForTraits(const TaskTraits& traits) { |
| - return traits.priority() == TaskPriority::BACKGROUND ? BACKGROUND_WORKER_POOL |
| - : FOREGROUND_WORKER_POOL; |
| -} |
| - |
| -std::vector<SchedulerWorkerPoolParams> GetParamsVector() { |
| - using StandbyThreadPolicy = SchedulerWorkerPoolParams::StandbyThreadPolicy; |
| - |
| - std::vector<SchedulerWorkerPoolParams> params_vector; |
| - |
| - DCHECK_EQ(BACKGROUND_WORKER_POOL, params_vector.size()); |
| - params_vector.emplace_back("Background", ThreadPriority::BACKGROUND, |
| - StandbyThreadPolicy::LAZY, 1U, TimeDelta::Max()); |
| - |
| - DCHECK_EQ(FOREGROUND_WORKER_POOL, params_vector.size()); |
| - params_vector.emplace_back("Foreground", ThreadPriority::NORMAL, |
| - StandbyThreadPolicy::LAZY, 1U, TimeDelta::Max()); |
| - |
| - return params_vector; |
| -} |
| - |
| class TaskSchedulerSingleThreadTaskRunnerManagerTest : public testing::Test { |
| public: |
| TaskSchedulerSingleThreadTaskRunnerManagerTest() |
| @@ -65,12 +39,10 @@ class TaskSchedulerSingleThreadTaskRunnerManagerTest : public testing::Test { |
| void SetUp() override { |
| service_thread_.Start(); |
| - |
| delayed_task_manager_ = |
| MakeUnique<DelayedTaskManager>(service_thread_.task_runner()); |
| single_thread_task_runner_manager_ = |
| MakeUnique<SchedulerSingleThreadTaskRunnerManager>( |
| - GetParamsVector(), Bind(&GetThreadPoolIndexForTraits), |
| &task_tracker_, delayed_task_manager_.get()); |
| StartSingleThreadTaskRunnerManagerFromSetup(); |
| } |
| @@ -122,11 +94,13 @@ TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerTest, DifferentThreadsUsed) { |
| scoped_refptr<SingleThreadTaskRunner> task_runner_1 = |
| single_thread_task_runner_manager_ |
| ->CreateSingleThreadTaskRunnerWithTraits( |
| + "A", ThreadPriority::NORMAL, |
| TaskTraits().WithShutdownBehavior( |
| TaskShutdownBehavior::BLOCK_SHUTDOWN)); |
| scoped_refptr<SingleThreadTaskRunner> task_runner_2 = |
| single_thread_task_runner_manager_ |
| ->CreateSingleThreadTaskRunnerWithTraits( |
| + "B", ThreadPriority::NORMAL, |
| TaskTraits().WithShutdownBehavior( |
| TaskShutdownBehavior::BLOCK_SHUTDOWN)); |
| @@ -149,17 +123,13 @@ TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerTest, PrioritySetCorrectly) { |
| scoped_refptr<SingleThreadTaskRunner> task_runner_background = |
| single_thread_task_runner_manager_ |
| ->CreateSingleThreadTaskRunnerWithTraits( |
| + "Background", ThreadPriority::BACKGROUND, |
| TaskTraits().WithPriority(TaskPriority::BACKGROUND)); |
| - scoped_refptr<SingleThreadTaskRunner> task_runner_user_visible = |
| + scoped_refptr<SingleThreadTaskRunner> task_runner_normal = |
| single_thread_task_runner_manager_ |
| ->CreateSingleThreadTaskRunnerWithTraits( |
| + "Normal", ThreadPriority::NORMAL, |
| TaskTraits().WithPriority(TaskPriority::USER_VISIBLE)); |
| - scoped_refptr<SingleThreadTaskRunner> task_runner_user_blocking = |
| - single_thread_task_runner_manager_ |
| - ->CreateSingleThreadTaskRunnerWithTraits( |
| - TaskTraits() |
| - .WithPriority(TaskPriority::USER_BLOCKING) |
| - .WithShutdownBehavior(TaskShutdownBehavior::BLOCK_SHUTDOWN)); |
| ThreadPriority thread_priority_background; |
| task_runner_background->PostTask( |
| @@ -171,41 +141,30 @@ TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerTest, PrioritySetCorrectly) { |
| FROM_HERE, |
| Bind(&WaitableEvent::Signal, Unretained(&waitable_event_background))); |
| - ThreadPriority thread_priority_user_visible; |
| - task_runner_user_visible->PostTask( |
| - FROM_HERE, Bind(&CaptureThreadPriority, &thread_priority_user_visible)); |
| - WaitableEvent waitable_event_user_visible( |
| - WaitableEvent::ResetPolicy::MANUAL, |
| - WaitableEvent::InitialState::NOT_SIGNALED); |
| - task_runner_user_visible->PostTask( |
| - FROM_HERE, |
| - Bind(&WaitableEvent::Signal, Unretained(&waitable_event_user_visible))); |
| - |
| - ThreadPriority thread_priority_user_blocking; |
| - task_runner_user_blocking->PostTask( |
| - FROM_HERE, Bind(&CaptureThreadPriority, &thread_priority_user_blocking)); |
|
robliao
2017/04/12 19:08:13
What's the rationale for removing this test?
fdoray
2017/04/12 20:00:23
Since SchedulerSingleThreadTaskRunnerManager doesn
|
| - WaitableEvent waitable_event_user_blocking( |
| + ThreadPriority thread_priority_normal; |
| + task_runner_normal->PostTask( |
| + FROM_HERE, Bind(&CaptureThreadPriority, &thread_priority_normal)); |
| + WaitableEvent waitable_event_normal( |
| WaitableEvent::ResetPolicy::MANUAL, |
| WaitableEvent::InitialState::NOT_SIGNALED); |
| - task_runner_user_blocking->PostTask( |
| + task_runner_normal->PostTask( |
| FROM_HERE, |
| - Bind(&WaitableEvent::Signal, Unretained(&waitable_event_user_blocking))); |
| + Bind(&WaitableEvent::Signal, Unretained(&waitable_event_normal))); |
| waitable_event_background.Wait(); |
| - waitable_event_user_visible.Wait(); |
| - waitable_event_user_blocking.Wait(); |
| + waitable_event_normal.Wait(); |
| if (Lock::HandlesMultipleThreadPriorities()) |
| EXPECT_EQ(ThreadPriority::BACKGROUND, thread_priority_background); |
| else |
| EXPECT_EQ(ThreadPriority::NORMAL, thread_priority_background); |
| - EXPECT_EQ(ThreadPriority::NORMAL, thread_priority_user_visible); |
| - EXPECT_EQ(ThreadPriority::NORMAL, thread_priority_user_blocking); |
| + EXPECT_EQ(ThreadPriority::NORMAL, thread_priority_normal); |
| } |
| TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerTest, PostTaskAfterShutdown) { |
| auto task_runner = single_thread_task_runner_manager_ |
| - ->CreateSingleThreadTaskRunnerWithTraits(TaskTraits()); |
| + ->CreateSingleThreadTaskRunnerWithTraits( |
| + "A", ThreadPriority::NORMAL, TaskTraits()); |
| task_tracker_.Shutdown(); |
| EXPECT_FALSE(task_runner->PostTask(FROM_HERE, Bind(&ShouldNotRun))); |
| } |
| @@ -218,7 +177,8 @@ TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerTest, PostDelayedTask) { |
| WaitableEvent task_ran(WaitableEvent::ResetPolicy::MANUAL, |
| WaitableEvent::InitialState::NOT_SIGNALED); |
| auto task_runner = single_thread_task_runner_manager_ |
| - ->CreateSingleThreadTaskRunnerWithTraits(TaskTraits()); |
| + ->CreateSingleThreadTaskRunnerWithTraits( |
| + "B", ThreadPriority::NORMAL, TaskTraits()); |
| EXPECT_TRUE(task_runner->PostDelayedTask( |
| FROM_HERE, Bind(&WaitableEvent::Signal, Unretained(&task_ran)), |
| TestTimeouts::tiny_timeout())); |
| @@ -239,11 +199,13 @@ TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerTest, |
| scoped_refptr<SingleThreadTaskRunner> task_runner_1 = |
| single_thread_task_runner_manager_ |
| ->CreateSingleThreadTaskRunnerWithTraits( |
| + "A", ThreadPriority::NORMAL, |
| TaskTraits().WithShutdownBehavior( |
| TaskShutdownBehavior::BLOCK_SHUTDOWN)); |
| scoped_refptr<SingleThreadTaskRunner> task_runner_2 = |
| single_thread_task_runner_manager_ |
| ->CreateSingleThreadTaskRunnerWithTraits( |
| + "B", ThreadPriority::NORMAL, |
| TaskTraits().WithShutdownBehavior( |
| TaskShutdownBehavior::BLOCK_SHUTDOWN)); |
| @@ -327,6 +289,7 @@ TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerJoinTest, ConcurrentJoin) { |
| { |
| auto task_runner = single_thread_task_runner_manager_ |
| ->CreateSingleThreadTaskRunnerWithTraits( |
| + "A", ThreadPriority::NORMAL, |
| TaskTraits().WithBaseSyncPrimitives()); |
| EXPECT_TRUE(task_runner->PostTask( |
| FROM_HERE, Bind(&WaitableEvent::Signal, Unretained(&task_running)))); |
| @@ -355,6 +318,7 @@ TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerJoinTest, |
| { |
| auto task_runner = single_thread_task_runner_manager_ |
| ->CreateSingleThreadTaskRunnerWithTraits( |
| + "A", ThreadPriority::NORMAL, |
| TaskTraits().WithBaseSyncPrimitives()); |
| EXPECT_TRUE(task_runner->PostTask( |
| FROM_HERE, Bind(&WaitableEvent::Signal, Unretained(&task_running)))); |
| @@ -377,6 +341,7 @@ TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerJoinTest, |
| TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerTest, COMSTAInitialized) { |
| scoped_refptr<SingleThreadTaskRunner> com_task_runner = |
| single_thread_task_runner_manager_->CreateCOMSTATaskRunnerWithTraits( |
| + "A", ThreadPriority::NORMAL, |
| TaskTraits().WithShutdownBehavior( |
| TaskShutdownBehavior::BLOCK_SHUTDOWN)); |
| @@ -440,6 +405,7 @@ class TaskSchedulerSingleThreadTaskRunnerManagerTestWin |
| TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerTestWin, PumpsMessages) { |
| scoped_refptr<SingleThreadTaskRunner> com_task_runner = |
| single_thread_task_runner_manager_->CreateCOMSTATaskRunnerWithTraits( |
| + "A", ThreadPriority::NORMAL, |
| TaskTraits().WithShutdownBehavior( |
| TaskShutdownBehavior::BLOCK_SHUTDOWN)); |
| HWND hwnd = nullptr; |
| @@ -492,7 +458,8 @@ TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerStartTest, |
| WaitableEvent task_running(WaitableEvent::ResetPolicy::MANUAL, |
| WaitableEvent::InitialState::NOT_SIGNALED); |
| single_thread_task_runner_manager_ |
| - ->CreateSingleThreadTaskRunnerWithTraits(TaskTraits()) |
| + ->CreateSingleThreadTaskRunnerWithTraits("A", ThreadPriority::NORMAL, |
| + TaskTraits()) |
| ->PostTask( |
| FROM_HERE, |
| Bind( |