OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "platform/scheduler/base/work_queue_sets.h" | 5 #include "platform/scheduler/base/work_queue_sets.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
10 #include "platform/scheduler/base/work_queue.h" | 10 #include "platform/scheduler/base/work_queue.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 }; | 35 }; |
36 | 36 |
37 WorkQueue* NewTaskQueue(const char* queue_name) { | 37 WorkQueue* NewTaskQueue(const char* queue_name) { |
38 WorkQueue* queue = | 38 WorkQueue* queue = |
39 new WorkQueue(nullptr, "test", WorkQueue::QueueType::IMMEDIATE); | 39 new WorkQueue(nullptr, "test", WorkQueue::QueueType::IMMEDIATE); |
40 work_queues_.push_back(base::WrapUnique(queue)); | 40 work_queues_.push_back(base::WrapUnique(queue)); |
41 work_queue_sets_->AddQueue(queue, TaskQueue::CONTROL_PRIORITY); | 41 work_queue_sets_->AddQueue(queue, TaskQueue::CONTROL_PRIORITY); |
42 return queue; | 42 return queue; |
43 } | 43 } |
44 | 44 |
45 TaskQueueImpl::Task FakeTaskWithEnqueueOrder(int enqueue_order) { | 45 TaskQueueImpl::Task FakeTaskWithEnqueueOrder(int sequence_number) { |
46 TaskQueueImpl::Task fake_task(FROM_HERE, base::Closure(), base::TimeTicks(), | 46 TaskQueueImpl::Task fake_task(FROM_HERE, base::Closure(), |
47 0, true); | 47 {base::TimeTicks(), sequence_number}, true); |
48 fake_task.set_enqueue_order(enqueue_order); | |
49 return fake_task; | 48 return fake_task; |
50 } | 49 } |
51 | 50 |
52 std::vector<std::unique_ptr<WorkQueue>> work_queues_; | 51 std::vector<std::unique_ptr<WorkQueue>> work_queues_; |
53 std::unique_ptr<WorkQueueSets> work_queue_sets_; | 52 std::unique_ptr<WorkQueueSets> work_queue_sets_; |
54 }; | 53 }; |
55 | 54 |
56 TEST_F(WorkQueueSetsTest, ChangeSetIndex) { | 55 TEST_F(WorkQueueSetsTest, ChangeSetIndex) { |
57 WorkQueue* work_queue = NewTaskQueue("queue"); | 56 WorkQueue* work_queue = NewTaskQueue("queue"); |
58 size_t set = TaskQueue::NORMAL_PRIORITY; | 57 size_t set = TaskQueue::NORMAL_PRIORITY; |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 WorkQueue* work_queue = NewTaskQueue("queue"); | 101 WorkQueue* work_queue = NewTaskQueue("queue"); |
103 work_queue->Push(FakeTaskWithEnqueueOrder(10)); | 102 work_queue->Push(FakeTaskWithEnqueueOrder(10)); |
104 size_t set = 1; | 103 size_t set = 1; |
105 work_queue_sets_->ChangeSetIndex(work_queue, set); | 104 work_queue_sets_->ChangeSetIndex(work_queue, set); |
106 | 105 |
107 WorkQueue* selected_work_queue; | 106 WorkQueue* selected_work_queue; |
108 EnqueueOrder enqueue_order; | 107 EnqueueOrder enqueue_order; |
109 EXPECT_TRUE(work_queue_sets_->GetOldestQueueAndEnqueueOrderInSet( | 108 EXPECT_TRUE(work_queue_sets_->GetOldestQueueAndEnqueueOrderInSet( |
110 set, &selected_work_queue, &enqueue_order)); | 109 set, &selected_work_queue, &enqueue_order)); |
111 EXPECT_EQ(work_queue, selected_work_queue); | 110 EXPECT_EQ(work_queue, selected_work_queue); |
112 EXPECT_EQ(10u, enqueue_order); | 111 EXPECT_EQ(10u, enqueue_order.sequence_num); |
113 } | 112 } |
114 | 113 |
115 TEST_F(WorkQueueSetsTest, GetOldestQueueInSet_MultipleAgesInSet) { | 114 TEST_F(WorkQueueSetsTest, GetOldestQueueInSet_MultipleAgesInSet) { |
116 WorkQueue* queue1 = NewTaskQueue("queue1"); | 115 WorkQueue* queue1 = NewTaskQueue("queue1"); |
117 WorkQueue* queue2 = NewTaskQueue("queue2"); | 116 WorkQueue* queue2 = NewTaskQueue("queue2"); |
118 WorkQueue* queue3 = NewTaskQueue("queue2"); | 117 WorkQueue* queue3 = NewTaskQueue("queue2"); |
119 queue1->Push(FakeTaskWithEnqueueOrder(6)); | 118 queue1->Push(FakeTaskWithEnqueueOrder(6)); |
120 queue2->Push(FakeTaskWithEnqueueOrder(5)); | 119 queue2->Push(FakeTaskWithEnqueueOrder(5)); |
121 queue3->Push(FakeTaskWithEnqueueOrder(4)); | 120 queue3->Push(FakeTaskWithEnqueueOrder(4)); |
122 size_t set = 2; | 121 size_t set = 2; |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
288 | 287 |
289 queue1->InsertFence(1); | 288 queue1->InsertFence(1); |
290 | 289 |
291 EXPECT_TRUE(work_queue_sets_->GetOldestQueueInSet(set, &selected_work_queue)); | 290 EXPECT_TRUE(work_queue_sets_->GetOldestQueueInSet(set, &selected_work_queue)); |
292 EXPECT_EQ(selected_work_queue, queue2); | 291 EXPECT_EQ(selected_work_queue, queue2); |
293 } | 292 } |
294 | 293 |
295 } // namespace internal | 294 } // namespace internal |
296 } // namespace scheduler | 295 } // namespace scheduler |
297 } // namespace blink | 296 } // namespace blink |
OLD | NEW |