Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1065)

Unified Diff: base/task_scheduler/task_tracker_unittest.cc

Issue 2831883003: Do not inherit TaskPriority in TaskTraits. (Closed)
Patch Set: self-review Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/task_scheduler/task_tracker_unittest.cc
diff --git a/base/task_scheduler/task_tracker_unittest.cc b/base/task_scheduler/task_tracker_unittest.cc
index e1596f7b51fdb3d5df92f687c14656b5dbd398ff..4d3d94f4313f60233d505eb5535515697c221ce5 100644
--- a/base/task_scheduler/task_tracker_unittest.cc
+++ b/base/task_scheduler/task_tracker_unittest.cc
@@ -27,6 +27,7 @@
#include "base/task_scheduler/scheduler_lock.h"
#include "base/task_scheduler/task.h"
#include "base/task_scheduler/task_traits.h"
+#include "base/task_scheduler/test_utils.h"
#include "base/test/gtest_util.h"
#include "base/test/histogram_tester.h"
#include "base/test/test_simple_task_runner.h"
@@ -149,7 +150,8 @@ class TaskSchedulerTaskTrackerTest
return MakeUnique<Task>(
FROM_HERE,
Bind(&TaskSchedulerTaskTrackerTest::RunTaskCallback, Unretained(this)),
- TaskTraits().WithShutdownBehavior(shutdown_behavior), TimeDelta());
+ test::CreateTaskTraits().WithShutdownBehavior(shutdown_behavior),
+ TimeDelta());
}
// Calls tracker_->Shutdown() on a new thread. When this returns, Shutdown()
@@ -277,7 +279,8 @@ TEST_P(TaskSchedulerTaskTrackerTest, WillPostAndRunLongTaskBeforeShutdown) {
task_barrier->Wait();
},
Unretained(&task_running), base::Unretained(&task_barrier)),
- TaskTraits().WithBaseSyncPrimitives().WithShutdownBehavior(GetParam()),
+ test::CreateTaskTraits().WithBaseSyncPrimitives().WithShutdownBehavior(
+ GetParam()),
TimeDelta());
// Inform |task_tracker_| that |blocked_task| will be posted.
@@ -427,9 +430,9 @@ TEST_P(TaskSchedulerTaskTrackerTest, SingletonAllowed) {
(GetParam() != TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN);
TaskTracker tracker;
- std::unique_ptr<Task> task(
- new Task(FROM_HERE, BindOnce(&ThreadRestrictions::AssertSingletonAllowed),
- TaskTraits().WithShutdownBehavior(GetParam()), TimeDelta()));
+ std::unique_ptr<Task> task(new Task(
+ FROM_HERE, BindOnce(&ThreadRestrictions::AssertSingletonAllowed),
+ test::CreateTaskTraits().WithShutdownBehavior(GetParam()), TimeDelta()));
EXPECT_TRUE(tracker.WillPostTask(task.get()));
// Set the singleton allowed bit to the opposite of what it is expected to be
@@ -458,7 +461,8 @@ TEST_P(TaskSchedulerTaskTrackerTest, IOAllowed) {
// Shouldn't fail.
ThreadRestrictions::AssertIOAllowed();
}),
- TaskTraits().MayBlock().WithShutdownBehavior(GetParam()), TimeDelta());
+ test::CreateTaskTraits().MayBlock().WithShutdownBehavior(GetParam()),
+ TimeDelta());
EXPECT_TRUE(tracker.WillPostTask(task_with_may_block.get()));
tracker.RunTask(std::move(task_with_may_block), SequenceToken::Create());
@@ -469,7 +473,7 @@ TEST_P(TaskSchedulerTaskTrackerTest, IOAllowed) {
FROM_HERE, Bind([]() {
EXPECT_DCHECK_DEATH({ ThreadRestrictions::AssertIOAllowed(); });
}),
- TaskTraits().WithShutdownBehavior(GetParam()), TimeDelta());
+ test::CreateTaskTraits().WithShutdownBehavior(GetParam()), TimeDelta());
EXPECT_TRUE(tracker.WillPostTask(task_without_may_block.get()));
tracker.RunTask(std::move(task_without_may_block), SequenceToken::Create());
}
@@ -501,9 +505,9 @@ static void VerifyNoTaskRunnerHandle() {
TEST_P(TaskSchedulerTaskTrackerTest, TaskRunnerHandleIsNotSetOnParallel) {
// Create a task that will verify that TaskRunnerHandles are not set in its
// scope per no TaskRunner ref being set to it.
- std::unique_ptr<Task> verify_task(
- new Task(FROM_HERE, BindOnce(&VerifyNoTaskRunnerHandle),
- TaskTraits().WithShutdownBehavior(GetParam()), TimeDelta()));
+ std::unique_ptr<Task> verify_task(new Task(
+ FROM_HERE, BindOnce(&VerifyNoTaskRunnerHandle),
+ test::CreateTaskTraits().WithShutdownBehavior(GetParam()), TimeDelta()));
RunTaskRunnerHandleVerificationTask(&tracker_, std::move(verify_task));
}
@@ -522,11 +526,11 @@ TEST_P(TaskSchedulerTaskTrackerTest,
// Create a task that will verify that SequencedTaskRunnerHandle is properly
// set to |test_task_runner| in its scope per |sequenced_task_runner_ref|
// being set to it.
- std::unique_ptr<Task> verify_task(
- new Task(FROM_HERE,
- BindOnce(&VerifySequencedTaskRunnerHandle,
- base::Unretained(test_task_runner.get())),
- TaskTraits().WithShutdownBehavior(GetParam()), TimeDelta()));
+ std::unique_ptr<Task> verify_task(new Task(
+ FROM_HERE,
+ BindOnce(&VerifySequencedTaskRunnerHandle,
+ base::Unretained(test_task_runner.get())),
+ test::CreateTaskTraits().WithShutdownBehavior(GetParam()), TimeDelta()));
verify_task->sequenced_task_runner_ref = test_task_runner;
RunTaskRunnerHandleVerificationTask(&tracker_, std::move(verify_task));
@@ -548,20 +552,20 @@ TEST_P(TaskSchedulerTaskTrackerTest,
// Create a task that will verify that ThreadTaskRunnerHandle is properly set
// to |test_task_runner| in its scope per |single_thread_task_runner_ref|
// being set on it.
- std::unique_ptr<Task> verify_task(
- new Task(FROM_HERE,
- BindOnce(&VerifyThreadTaskRunnerHandle,
- base::Unretained(test_task_runner.get())),
- TaskTraits().WithShutdownBehavior(GetParam()), TimeDelta()));
+ std::unique_ptr<Task> verify_task(new Task(
+ FROM_HERE,
+ BindOnce(&VerifyThreadTaskRunnerHandle,
+ base::Unretained(test_task_runner.get())),
+ test::CreateTaskTraits().WithShutdownBehavior(GetParam()), TimeDelta()));
verify_task->single_thread_task_runner_ref = test_task_runner;
RunTaskRunnerHandleVerificationTask(&tracker_, std::move(verify_task));
}
TEST_P(TaskSchedulerTaskTrackerTest, FlushPendingDelayedTask) {
- const Task delayed_task(FROM_HERE, BindOnce(&DoNothing),
- TaskTraits().WithShutdownBehavior(GetParam()),
- TimeDelta::FromDays(1));
+ Task delayed_task(FROM_HERE, BindOnce(&DoNothing),
+ test::CreateTaskTraits().WithShutdownBehavior(GetParam()),
+ TimeDelta::FromDays(1));
tracker_.WillPostTask(&delayed_task);
// Flush() should return even if the delayed task didn't run.
tracker_.Flush();
@@ -570,7 +574,7 @@ TEST_P(TaskSchedulerTaskTrackerTest, FlushPendingDelayedTask) {
TEST_P(TaskSchedulerTaskTrackerTest, FlushPendingUndelayedTask) {
auto undelayed_task = base::MakeUnique<Task>(
FROM_HERE, Bind(&DoNothing),
- TaskTraits().WithShutdownBehavior(GetParam()), TimeDelta());
+ test::CreateTaskTraits().WithShutdownBehavior(GetParam()), TimeDelta());
tracker_.WillPostTask(undelayed_task.get());
// Flush() shouldn't return before the undelayed task runs.
@@ -586,7 +590,7 @@ TEST_P(TaskSchedulerTaskTrackerTest, FlushPendingUndelayedTask) {
TEST_P(TaskSchedulerTaskTrackerTest, PostTaskDuringFlush) {
auto undelayed_task = base::MakeUnique<Task>(
FROM_HERE, Bind(&DoNothing),
- TaskTraits().WithShutdownBehavior(GetParam()), TimeDelta());
+ test::CreateTaskTraits().WithShutdownBehavior(GetParam()), TimeDelta());
tracker_.WillPostTask(undelayed_task.get());
// Flush() shouldn't return before the undelayed task runs.
@@ -597,7 +601,7 @@ TEST_P(TaskSchedulerTaskTrackerTest, PostTaskDuringFlush) {
// Simulate posting another undelayed task.
auto other_undelayed_task = base::MakeUnique<Task>(
FROM_HERE, Bind(&DoNothing),
- TaskTraits().WithShutdownBehavior(GetParam()), TimeDelta());
+ test::CreateTaskTraits().WithShutdownBehavior(GetParam()), TimeDelta());
tracker_.WillPostTask(other_undelayed_task.get());
// Run the first undelayed task.
@@ -616,11 +620,12 @@ TEST_P(TaskSchedulerTaskTrackerTest, RunDelayedTaskDuringFlush) {
// Simulate posting a delayed and an undelayed task.
auto delayed_task = base::MakeUnique<Task>(
FROM_HERE, Bind(&DoNothing),
- TaskTraits().WithShutdownBehavior(GetParam()), TimeDelta::FromDays(1));
+ test::CreateTaskTraits().WithShutdownBehavior(GetParam()),
+ TimeDelta::FromDays(1));
tracker_.WillPostTask(delayed_task.get());
auto undelayed_task = base::MakeUnique<Task>(
FROM_HERE, Bind(&DoNothing),
- TaskTraits().WithShutdownBehavior(GetParam()), TimeDelta());
+ test::CreateTaskTraits().WithShutdownBehavior(GetParam()), TimeDelta());
tracker_.WillPostTask(undelayed_task.get());
// Flush() shouldn't return before the undelayed task runs.
@@ -650,7 +655,7 @@ TEST_P(TaskSchedulerTaskTrackerTest, FlushAfterShutdown) {
// Simulate posting a task.
auto undelayed_task = base::MakeUnique<Task>(
FROM_HERE, Bind(&DoNothing),
- TaskTraits().WithShutdownBehavior(GetParam()), TimeDelta());
+ test::CreateTaskTraits().WithShutdownBehavior(GetParam()), TimeDelta());
tracker_.WillPostTask(undelayed_task.get());
// Shutdown() should return immediately since there are no pending
@@ -669,7 +674,7 @@ TEST_P(TaskSchedulerTaskTrackerTest, ShutdownDuringFlush) {
// Simulate posting a task.
auto undelayed_task = base::MakeUnique<Task>(
FROM_HERE, Bind(&DoNothing),
- TaskTraits().WithShutdownBehavior(GetParam()), TimeDelta());
+ test::CreateTaskTraits().WithShutdownBehavior(GetParam()), TimeDelta());
tracker_.WillPostTask(undelayed_task.get());
// Flush() shouldn't return before the undelayed task runs or
@@ -713,7 +718,7 @@ TEST_F(TaskSchedulerTaskTrackerTest, CurrentSequenceToken) {
const SequenceToken sequence_token(SequenceToken::Create());
auto task = base::MakeUnique<Task>(FROM_HERE,
Bind(&ExpectSequenceToken, sequence_token),
- TaskTraits(), TimeDelta());
+ test::CreateTaskTraits(), TimeDelta());
tracker_.WillPostTask(task.get());
EXPECT_FALSE(SequenceToken::GetForCurrentThread().IsValid());
@@ -866,7 +871,7 @@ class WaitAllowedTestThread : public SimpleThread {
FROM_HERE, Bind([]() {
EXPECT_DCHECK_DEATH({ ThreadRestrictions::AssertWaitAllowed(); });
}),
- TaskTraits(), TimeDelta());
+ test::CreateTaskTraits(), TimeDelta());
EXPECT_TRUE(tracker.WillPostTask(task_without_sync_primitives.get()));
tracker.RunTask(std::move(task_without_sync_primitives),
SequenceToken::Create());
@@ -874,12 +879,12 @@ class WaitAllowedTestThread : public SimpleThread {
// Disallow waiting. Expect TaskTracker to allow it before running a task
// with the WithBaseSyncPrimitives() trait.
ThreadRestrictions::DisallowWaiting();
- auto task_with_sync_primitives =
- MakeUnique<Task>(FROM_HERE, Bind([]() {
- // Shouldn't fail.
- ThreadRestrictions::AssertWaitAllowed();
- }),
- TaskTraits().WithBaseSyncPrimitives(), TimeDelta());
+ auto task_with_sync_primitives = MakeUnique<Task>(
+ FROM_HERE, Bind([]() {
+ // Shouldn't fail.
+ ThreadRestrictions::AssertWaitAllowed();
+ }),
+ test::CreateTaskTraits().WithBaseSyncPrimitives(), TimeDelta());
EXPECT_TRUE(tracker.WillPostTask(task_with_sync_primitives.get()));
tracker.RunTask(std::move(task_with_sync_primitives),
SequenceToken::Create());
@@ -909,30 +914,36 @@ TEST(TaskSchedulerTaskTrackerHistogramTest, TaskLatency) {
TaskTracker tracker;
struct {
- const TaskTraits traits;
+ TaskTraits traits;
const char* const expected_histogram;
} tests[] = {
- {TaskTraits().WithPriority(TaskPriority::BACKGROUND),
+ {test::CreateTaskTraits().WithPriority(TaskPriority::BACKGROUND),
"TaskScheduler.TaskLatency.BackgroundTaskPriority"},
- {TaskTraits().WithPriority(TaskPriority::BACKGROUND).MayBlock(),
+ {test::CreateTaskTraits()
+ .WithPriority(TaskPriority::BACKGROUND)
+ .MayBlock(),
"TaskScheduler.TaskLatency.BackgroundTaskPriority.MayBlock"},
- {TaskTraits()
+ {test::CreateTaskTraits()
.WithPriority(TaskPriority::BACKGROUND)
.WithBaseSyncPrimitives(),
"TaskScheduler.TaskLatency.BackgroundTaskPriority.MayBlock"},
- {TaskTraits().WithPriority(TaskPriority::USER_VISIBLE),
+ {test::CreateTaskTraits().WithPriority(TaskPriority::USER_VISIBLE),
"TaskScheduler.TaskLatency.UserVisibleTaskPriority"},
- {TaskTraits().WithPriority(TaskPriority::USER_VISIBLE).MayBlock(),
+ {test::CreateTaskTraits()
+ .WithPriority(TaskPriority::USER_VISIBLE)
+ .MayBlock(),
"TaskScheduler.TaskLatency.UserVisibleTaskPriority.MayBlock"},
- {TaskTraits()
+ {test::CreateTaskTraits()
.WithPriority(TaskPriority::USER_VISIBLE)
.WithBaseSyncPrimitives(),
"TaskScheduler.TaskLatency.UserVisibleTaskPriority.MayBlock"},
- {TaskTraits().WithPriority(TaskPriority::USER_BLOCKING),
+ {test::CreateTaskTraits().WithPriority(TaskPriority::USER_BLOCKING),
"TaskScheduler.TaskLatency.UserBlockingTaskPriority"},
- {TaskTraits().WithPriority(TaskPriority::USER_BLOCKING).MayBlock(),
+ {test::CreateTaskTraits()
+ .WithPriority(TaskPriority::USER_BLOCKING)
+ .MayBlock(),
"TaskScheduler.TaskLatency.UserBlockingTaskPriority.MayBlock"},
- {TaskTraits()
+ {test::CreateTaskTraits()
.WithPriority(TaskPriority::USER_BLOCKING)
.WithBaseSyncPrimitives(),
"TaskScheduler.TaskLatency.UserBlockingTaskPriority.MayBlock"}};

Powered by Google App Engine
This is Rietveld 408576698