summaryrefslogtreecommitdiffstats
path: root/chromium/base/task/sequence_manager/work_queue_sets_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/base/task/sequence_manager/work_queue_sets_unittest.cc')
-rw-r--r--chromium/base/task/sequence_manager/work_queue_sets_unittest.cc30
1 files changed, 28 insertions, 2 deletions
diff --git a/chromium/base/task/sequence_manager/work_queue_sets_unittest.cc b/chromium/base/task/sequence_manager/work_queue_sets_unittest.cc
index 30f3bb8fa68..6450573d5b1 100644
--- a/chromium/base/task/sequence_manager/work_queue_sets_unittest.cc
+++ b/chromium/base/task/sequence_manager/work_queue_sets_unittest.cc
@@ -51,14 +51,14 @@ class WorkQueueSetsTest : public testing::Test {
}
Task FakeTaskWithEnqueueOrder(int enqueue_order) {
- Task fake_task(PostedTask(BindOnce([] {}), FROM_HERE), TimeTicks(),
+ Task fake_task(PostedTask(nullptr, BindOnce([] {}), FROM_HERE), TimeTicks(),
EnqueueOrder(),
EnqueueOrder::FromIntForTesting(enqueue_order));
return fake_task;
}
Task FakeNonNestableTaskWithEnqueueOrder(int enqueue_order) {
- Task fake_task(PostedTask(BindOnce([] {}), FROM_HERE), TimeTicks(),
+ Task fake_task(PostedTask(nullptr, BindOnce([] {}), FROM_HERE), TimeTicks(),
EnqueueOrder(),
EnqueueOrder::FromIntForTesting(enqueue_order));
fake_task.nestable = Nestable::kNonNestable;
@@ -331,6 +331,32 @@ TEST_F(WorkQueueSetsTest, PushNonNestableTaskToFront) {
EXPECT_EQ(queue1, work_queue_sets_->GetOldestQueueInSet(set));
}
+TEST_F(WorkQueueSetsTest, CollectSkippedOverLowerPriorityTasks) {
+ WorkQueue* queue1 = NewTaskQueue("queue1");
+ WorkQueue* queue2 = NewTaskQueue("queue2");
+ WorkQueue* queue3 = NewTaskQueue("queue3");
+
+ work_queue_sets_->ChangeSetIndex(queue1, 3);
+ work_queue_sets_->ChangeSetIndex(queue2, 2);
+ work_queue_sets_->ChangeSetIndex(queue3, 1);
+
+ queue1->Push(FakeTaskWithEnqueueOrder(1));
+ queue1->Push(FakeTaskWithEnqueueOrder(2));
+ queue2->Push(FakeTaskWithEnqueueOrder(3));
+ queue3->Push(FakeTaskWithEnqueueOrder(4));
+ queue3->Push(FakeTaskWithEnqueueOrder(5));
+ queue2->Push(FakeTaskWithEnqueueOrder(6));
+ queue1->Push(FakeTaskWithEnqueueOrder(7));
+
+ std::vector<const Task*> result;
+ work_queue_sets_->CollectSkippedOverLowerPriorityTasks(queue3, &result);
+
+ ASSERT_EQ(3u, result.size());
+ EXPECT_EQ(3u, result[0]->enqueue_order()); // The order here isn't important.
+ EXPECT_EQ(1u, result[1]->enqueue_order());
+ EXPECT_EQ(2u, result[2]->enqueue_order());
+}
+
} // namespace internal
} // namespace sequence_manager
} // namespace base