| 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 1311ea8c9921494dd0928a4ce7ab6ad13a3c2bbf..16621025393c5f081c22aa39c3ecbfd85c682142 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
|
| @@ -23,32 +23,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()
|
| @@ -56,12 +30,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());
|
| }
|
|
|
| @@ -108,11 +80,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));
|
|
|
| @@ -135,17 +109,11 @@ TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerTest, PrioritySetCorrectly) {
|
| scoped_refptr<SingleThreadTaskRunner> task_runner_background =
|
| single_thread_task_runner_manager_
|
| ->CreateSingleThreadTaskRunnerWithTraits(
|
| - TaskTraits().WithPriority(TaskPriority::BACKGROUND));
|
| - scoped_refptr<SingleThreadTaskRunner> task_runner_user_visible =
|
| - single_thread_task_runner_manager_
|
| - ->CreateSingleThreadTaskRunnerWithTraits(
|
| - TaskTraits().WithPriority(TaskPriority::USER_VISIBLE));
|
| - scoped_refptr<SingleThreadTaskRunner> task_runner_user_blocking =
|
| + "Background", ThreadPriority::BACKGROUND, TaskTraits());
|
| + scoped_refptr<SingleThreadTaskRunner> task_runner_normal =
|
| single_thread_task_runner_manager_
|
| ->CreateSingleThreadTaskRunnerWithTraits(
|
| - TaskTraits()
|
| - .WithPriority(TaskPriority::USER_BLOCKING)
|
| - .WithShutdownBehavior(TaskShutdownBehavior::BLOCK_SHUTDOWN));
|
| + "Normal", ThreadPriority::NORMAL, TaskTraits());
|
|
|
| ThreadPriority thread_priority_background;
|
| task_runner_background->PostTask(
|
| @@ -157,41 +125,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));
|
| - 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(
|
| + "Thread", ThreadPriority::NORMAL, TaskTraits());
|
| task_tracker_.Shutdown();
|
| EXPECT_FALSE(task_runner->PostTask(FROM_HERE, Bind(&ShouldNotRun)));
|
| }
|
| @@ -204,7 +161,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(
|
| + "Thread", ThreadPriority::NORMAL, TaskTraits());
|
| EXPECT_TRUE(task_runner->PostDelayedTask(
|
| FROM_HERE, Bind(&WaitableEvent::Signal, Unretained(&task_ran)),
|
| TestTimeouts::tiny_timeout()));
|
| @@ -225,11 +183,13 @@ TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerTest,
|
| scoped_refptr<SingleThreadTaskRunner> task_runner_1 =
|
| single_thread_task_runner_manager_
|
| ->CreateSingleThreadTaskRunnerWithTraits(
|
| + "Thread", ThreadPriority::NORMAL,
|
| TaskTraits().WithShutdownBehavior(
|
| TaskShutdownBehavior::BLOCK_SHUTDOWN));
|
| scoped_refptr<SingleThreadTaskRunner> task_runner_2 =
|
| single_thread_task_runner_manager_
|
| ->CreateSingleThreadTaskRunnerWithTraits(
|
| + "Thread", ThreadPriority::NORMAL,
|
| TaskTraits().WithShutdownBehavior(
|
| TaskShutdownBehavior::BLOCK_SHUTDOWN));
|
|
|
| @@ -313,6 +273,7 @@ TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerJoinTest, ConcurrentJoin) {
|
| {
|
| auto task_runner = single_thread_task_runner_manager_
|
| ->CreateSingleThreadTaskRunnerWithTraits(
|
| + "Thread", ThreadPriority::NORMAL,
|
| TaskTraits().WithBaseSyncPrimitives());
|
| EXPECT_TRUE(task_runner->PostTask(
|
| FROM_HERE, Bind(&WaitableEvent::Signal, Unretained(&task_running))));
|
| @@ -341,6 +302,7 @@ TEST_F(TaskSchedulerSingleThreadTaskRunnerManagerJoinTest,
|
| {
|
| auto task_runner = single_thread_task_runner_manager_
|
| ->CreateSingleThreadTaskRunnerWithTraits(
|
| + "Thread", ThreadPriority::NORMAL,
|
| TaskTraits().WithBaseSyncPrimitives());
|
| EXPECT_TRUE(task_runner->PostTask(
|
| FROM_HERE, Bind(&WaitableEvent::Signal, Unretained(&task_running))));
|
|
|