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

Unified Diff: base/task_scheduler/scheduler_worker_unittest.cc

Issue 2399213005: TaskScheduler: Change Sequence::PeekTask to Sequence::TakeTask. (Closed)
Patch Set: CR robliao #5 Created 4 years, 2 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
« no previous file with comments | « base/task_scheduler/scheduler_worker_stack_unittest.cc ('k') | base/task_scheduler/sequence.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/task_scheduler/scheduler_worker_unittest.cc
diff --git a/base/task_scheduler/scheduler_worker_unittest.cc b/base/task_scheduler/scheduler_worker_unittest.cc
index 47a35cbecac7d672156b7dcd555fabb24ca475e1..0d29bcd16c5bd46215e41eb2e9004fbe6db0267c 100644
--- a/base/task_scheduler/scheduler_worker_unittest.cc
+++ b/base/task_scheduler/scheduler_worker_unittest.cc
@@ -46,8 +46,9 @@ class SchedulerWorkerDefaultDelegate : public SchedulerWorker::Delegate {
scoped_refptr<Sequence> GetWork(SchedulerWorker* worker) override {
return nullptr;
}
- void DidRunTask(const Task* task, const TimeDelta& task_latency) override {
- ADD_FAILURE() << "Unexpected call to DidRunTask()";
+ void DidRunTaskWithPriority(TaskPriority task_priority,
+ const TimeDelta& task_latency) override {
+ ADD_FAILURE() << "Unexpected call to DidRunTaskWithPriority()";
}
void ReEnqueueSequence(scoped_refptr<Sequence> sequence) override {
ADD_FAILURE() << "Unexpected call to ReEnqueueSequence()";
@@ -126,7 +127,7 @@ class TaskSchedulerWorkerTest : public testing::TestWithParam<size_t> {
: outer_(outer) {}
~TestSchedulerWorkerDelegate() override {
- EXPECT_FALSE(IsCallToDidRunTaskExpected());
+ EXPECT_FALSE(IsCallToDidRunTaskWithPriorityExpected());
}
// SchedulerWorker::Delegate:
@@ -134,7 +135,7 @@ class TaskSchedulerWorkerTest : public testing::TestWithParam<size_t> {
const TimeDelta& detach_duration) override {
outer_->worker_set_.Wait();
EXPECT_EQ(outer_->worker_.get(), worker);
- EXPECT_FALSE(IsCallToDidRunTaskExpected());
+ EXPECT_FALSE(IsCallToDidRunTaskWithPriorityExpected());
// Without synchronization, OnMainEntry() could be called twice without
// generating an error.
@@ -144,7 +145,7 @@ class TaskSchedulerWorkerTest : public testing::TestWithParam<size_t> {
}
scoped_refptr<Sequence> GetWork(SchedulerWorker* worker) override {
- EXPECT_FALSE(IsCallToDidRunTaskExpected());
+ EXPECT_FALSE(IsCallToDidRunTaskWithPriorityExpected());
EXPECT_EQ(outer_->worker_.get(), worker);
{
@@ -174,7 +175,7 @@ class TaskSchedulerWorkerTest : public testing::TestWithParam<size_t> {
sequence->PushTask(std::move(task));
}
- ExpectCallToDidRunTask(sequence->PeekTask());
+ ExpectCallToDidRunTaskWithPriority(sequence->PeekTaskTraits().priority());
{
// Add the Sequence to the vector of created Sequences.
@@ -185,11 +186,13 @@ class TaskSchedulerWorkerTest : public testing::TestWithParam<size_t> {
return sequence;
}
- void DidRunTask(const Task* task, const TimeDelta& task_latency) override {
- AutoSchedulerLock auto_lock(expect_did_run_task_lock_);
- EXPECT_EQ(expect_did_run_task_, task);
- expect_did_run_task_ = nullptr;
+ void DidRunTaskWithPriority(TaskPriority task_priority,
+ const TimeDelta& task_latency) override {
+ AutoSchedulerLock auto_lock(expect_did_run_task_with_priority_lock_);
+ EXPECT_TRUE(expect_did_run_task_with_priority_);
+ EXPECT_EQ(expected_task_priority_, task_priority);
EXPECT_FALSE(task_latency.is_max());
+ expect_did_run_task_with_priority_ = false;
}
// This override verifies that |sequence| contains the expected number of
@@ -197,15 +200,14 @@ class TaskSchedulerWorkerTest : public testing::TestWithParam<size_t> {
// EnqueueSequence implementation, it doesn't reinsert |sequence| into a
// queue for further execution.
void ReEnqueueSequence(scoped_refptr<Sequence> sequence) override {
- EXPECT_FALSE(IsCallToDidRunTaskExpected());
+ EXPECT_FALSE(IsCallToDidRunTaskWithPriorityExpected());
EXPECT_GT(outer_->TasksPerSequence(), 1U);
// Verify that |sequence| contains TasksPerSequence() - 1 Tasks.
for (size_t i = 0; i < outer_->TasksPerSequence() - 1; ++i) {
- EXPECT_TRUE(sequence->PeekTask());
- sequence->PopTask();
+ EXPECT_TRUE(sequence->TakeTask());
+ EXPECT_EQ(i == outer_->TasksPerSequence() - 2, sequence->Pop());
}
- EXPECT_FALSE(sequence->PeekTask());
// Add |sequence| to |re_enqueued_sequences_|.
AutoSchedulerLock auto_lock(outer_->lock_);
@@ -215,27 +217,31 @@ class TaskSchedulerWorkerTest : public testing::TestWithParam<size_t> {
}
private:
- // Expect a call to DidRunTask() with |task| as argument before the next
- // call to any other method of this delegate.
- void ExpectCallToDidRunTask(const Task* task) {
- AutoSchedulerLock auto_lock(expect_did_run_task_lock_);
- expect_did_run_task_ = task;
+ // Expect a call to DidRunTaskWithPriority() with |task_priority| as
+ // argument before the next call to any other method of this delegate.
+ void ExpectCallToDidRunTaskWithPriority(TaskPriority task_priority) {
+ AutoSchedulerLock auto_lock(expect_did_run_task_with_priority_lock_);
+ expect_did_run_task_with_priority_ = true;
+ expected_task_priority_ = task_priority;
}
- bool IsCallToDidRunTaskExpected() const {
- AutoSchedulerLock auto_lock(expect_did_run_task_lock_);
- return expect_did_run_task_ != nullptr;
+ bool IsCallToDidRunTaskWithPriorityExpected() const {
+ AutoSchedulerLock auto_lock(expect_did_run_task_with_priority_lock_);
+ return expect_did_run_task_with_priority_;
}
TaskSchedulerWorkerTest* outer_;
- // Synchronizes access to |expect_did_run_task_|.
- mutable SchedulerLock expect_did_run_task_lock_;
+ // Synchronizes access to |expect_did_run_task_with_priority_| and
+ // |expected_task_priority_|.
+ mutable SchedulerLock expect_did_run_task_with_priority_lock_;
- // Expected task for the next call to DidRunTask(). DidRunTask() should not
- // be called when this is nullptr. No method other than DidRunTask() should
- // be called on this delegate when this is not nullptr.
- const Task* expect_did_run_task_ = nullptr;
+ // Whether the next method called on this delegate should be
+ // DidRunTaskWithPriority().
+ bool expect_did_run_task_with_priority_ = false;
+
+ // Expected priority for the next call to DidRunTaskWithPriority().
+ TaskPriority expected_task_priority_ = TaskPriority::BACKGROUND;
};
void RunTaskCallback() {
@@ -384,7 +390,8 @@ class ControllableDetachDelegate : public SchedulerWorkerDefaultDelegate {
return sequence;
}
- void DidRunTask(const Task* task, const TimeDelta& task_latency) override {}
+ void DidRunTaskWithPriority(TaskPriority task,
+ const TimeDelta& task_latency) override {}
bool CanDetach(SchedulerWorker* worker) override {
detach_requested_.Signal();
« no previous file with comments | « base/task_scheduler/scheduler_worker_stack_unittest.cc ('k') | base/task_scheduler/sequence.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698