| Index: third_party/WebKit/Source/platform/scheduler/base/work_queue_sets_unittest.cc
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/base/work_queue_sets_unittest.cc b/third_party/WebKit/Source/platform/scheduler/base/work_queue_sets_unittest.cc
|
| index 5b107117250c3069b6fa4339037ba48304c70de7..7dbee0be71c2efafbfa22ba46a1fd9034006deb6 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/base/work_queue_sets_unittest.cc
|
| +++ b/third_party/WebKit/Source/platform/scheduler/base/work_queue_sets_unittest.cc
|
| @@ -35,7 +35,8 @@ class WorkQueueSetsTest : public testing::Test {
|
| };
|
|
|
| WorkQueue* NewTaskQueue(const char* queue_name) {
|
| - WorkQueue* queue = new WorkQueue(nullptr, "test");
|
| + WorkQueue* queue = new WorkQueue(
|
| + nullptr, "test", TaskQueueImpl::Task::EnqueueOrderComparatorFn);
|
| work_queues_.push_back(base::WrapUnique(queue));
|
| work_queue_sets_->AddQueue(queue, TaskQueue::CONTROL_PRIORITY);
|
| return queue;
|
| @@ -119,8 +120,8 @@ TEST_F(WorkQueueSetsTest, OnPopQueue) {
|
| WorkQueue* queue2 = NewTaskQueue("queue2");
|
| WorkQueue* queue3 = NewTaskQueue("queue3");
|
| queue1->Push(FakeTaskWithEnqueueOrder(6));
|
| - queue2->Push(FakeTaskWithEnqueueOrder(3));
|
| queue2->Push(FakeTaskWithEnqueueOrder(1));
|
| + queue2->Push(FakeTaskWithEnqueueOrder(3));
|
| queue3->Push(FakeTaskWithEnqueueOrder(4));
|
| size_t set = 3;
|
| work_queue_sets_->ChangeSetIndex(queue1, set);
|
| @@ -138,6 +139,58 @@ TEST_F(WorkQueueSetsTest, OnPopQueue) {
|
| EXPECT_EQ(queue2, selected_work_queue);
|
| }
|
|
|
| +TEST_F(WorkQueueSetsTest, OnQueueHeadChanged_RemoveOldestInSet) {
|
| + WorkQueue* queue1 = NewTaskQueue("queue1");
|
| + WorkQueue* queue2 = NewTaskQueue("queue2");
|
| + WorkQueue* queue3 = NewTaskQueue("queue3");
|
| + queue1->Push(FakeTaskWithEnqueueOrder(6));
|
| + queue2->Push(FakeTaskWithEnqueueOrder(1));
|
| + queue3->Push(FakeTaskWithEnqueueOrder(4));
|
| + size_t set = 3;
|
| + work_queue_sets_->ChangeSetIndex(queue1, set);
|
| + work_queue_sets_->ChangeSetIndex(queue2, set);
|
| + work_queue_sets_->ChangeSetIndex(queue3, set);
|
| +
|
| + WorkQueue* selected_work_queue;
|
| + EXPECT_TRUE(work_queue_sets_->GetOldestQueueInSet(set, &selected_work_queue));
|
| + EXPECT_EQ(queue2, selected_work_queue);
|
| +
|
| + queue2->PopTaskForTest();
|
| + work_queue_sets_->OnQueueHeadChanged(queue2, 1);
|
| +
|
| + EXPECT_TRUE(work_queue_sets_->GetOldestQueueInSet(set, &selected_work_queue));
|
| + EXPECT_EQ(queue3, selected_work_queue);
|
| +}
|
| +
|
| +TEST_F(WorkQueueSetsTest, OnQueueHeadChanged_RemoveMiddleValueFromSet) {
|
| + WorkQueue* queue1 = NewTaskQueue("queue1");
|
| + WorkQueue* queue2 = NewTaskQueue("queue2");
|
| + WorkQueue* queue3 = NewTaskQueue("queue3");
|
| + queue1->Push(FakeTaskWithEnqueueOrder(6));
|
| + queue2->Push(FakeTaskWithEnqueueOrder(1));
|
| + queue3->Push(FakeTaskWithEnqueueOrder(4));
|
| + size_t set = 3;
|
| + work_queue_sets_->ChangeSetIndex(queue1, set);
|
| + work_queue_sets_->ChangeSetIndex(queue2, set);
|
| + work_queue_sets_->ChangeSetIndex(queue3, set);
|
| +
|
| + WorkQueue* selected_work_queue;
|
| + EXPECT_TRUE(work_queue_sets_->GetOldestQueueInSet(set, &selected_work_queue));
|
| + EXPECT_EQ(queue2, selected_work_queue);
|
| +
|
| + queue3->PopTaskForTest();
|
| + work_queue_sets_->OnQueueHeadChanged(queue3, 4);
|
| +
|
| + EXPECT_TRUE(work_queue_sets_->GetOldestQueueInSet(set, &selected_work_queue));
|
| + EXPECT_EQ(queue2, selected_work_queue);
|
| +
|
| + queue2->PopTaskForTest();
|
| + work_queue_sets_->OnQueueHeadChanged(queue2, 1);
|
| +
|
| + EXPECT_TRUE(work_queue_sets_->GetOldestQueueInSet(set, &selected_work_queue));
|
| + EXPECT_EQ(queue1, selected_work_queue);
|
| +}
|
| +
|
| TEST_F(WorkQueueSetsTest, OnPopQueue_QueueBecomesEmpty) {
|
| WorkQueue* queue1 = NewTaskQueue("queue");
|
| WorkQueue* queue2 = NewTaskQueue("queue");
|
|
|