| Index: components/scheduler/base/task_queue_selector_unittest.cc
|
| diff --git a/components/scheduler/base/task_queue_selector_unittest.cc b/components/scheduler/base/task_queue_selector_unittest.cc
|
| index 6eb44571eaa4978013d383b936970eb2beef9cc9..ad509602bf94a885207f594eaef28bfccfdf626a 100644
|
| --- a/components/scheduler/base/task_queue_selector_unittest.cc
|
| +++ b/components/scheduler/base/task_queue_selector_unittest.cc
|
| @@ -33,7 +33,7 @@ class MockObserver : public TaskQueueSelector::Observer {
|
| class TaskQueueSelectorForTest : public TaskQueueSelector {
|
| public:
|
| using TaskQueueSelector::ChooseOldestWithPriority;
|
| - using TaskQueueSelector::SetForceSelectImmediateForTest;
|
| + using TaskQueueSelector::SetImmediateStarvationCountForTest;
|
| };
|
|
|
| class TaskQueueSelectorTest : public testing::Test {
|
| @@ -284,8 +284,11 @@ TEST_F(TaskQueueSelectorTest, EnabledWorkQueuesEmpty) {
|
|
|
| TEST_F(TaskQueueSelectorTest, ChooseOldestWithPriority_Empty) {
|
| WorkQueue* chosen_work_queue = nullptr;
|
| + bool chose_delayed_over_immediate = false;
|
| EXPECT_FALSE(selector_.ChooseOldestWithPriority(TaskQueue::NORMAL_PRIORITY,
|
| + &chose_delayed_over_immediate,
|
| &chosen_work_queue));
|
| + EXPECT_FALSE(chose_delayed_over_immediate);
|
| }
|
|
|
| TEST_F(TaskQueueSelectorTest, ChooseOldestWithPriority_OnlyDelayed) {
|
| @@ -295,9 +298,12 @@ TEST_F(TaskQueueSelectorTest, ChooseOldestWithPriority_OnlyDelayed) {
|
| task_queues_[0]->delayed_work_queue());
|
|
|
| WorkQueue* chosen_work_queue = nullptr;
|
| + bool chose_delayed_over_immediate = false;
|
| EXPECT_TRUE(selector_.ChooseOldestWithPriority(TaskQueue::NORMAL_PRIORITY,
|
| + &chose_delayed_over_immediate,
|
| &chosen_work_queue));
|
| EXPECT_EQ(chosen_work_queue, task_queues_[0]->delayed_work_queue());
|
| + EXPECT_FALSE(chose_delayed_over_immediate);
|
| }
|
|
|
| TEST_F(TaskQueueSelectorTest, ChooseOldestWithPriority_OnlyImmediate) {
|
| @@ -307,24 +313,31 @@ TEST_F(TaskQueueSelectorTest, ChooseOldestWithPriority_OnlyImmediate) {
|
| task_queues_[0]->immediate_work_queue());
|
|
|
| WorkQueue* chosen_work_queue = nullptr;
|
| + bool chose_delayed_over_immediate = false;
|
| EXPECT_TRUE(selector_.ChooseOldestWithPriority(TaskQueue::NORMAL_PRIORITY,
|
| + &chose_delayed_over_immediate,
|
| &chosen_work_queue));
|
| EXPECT_EQ(chosen_work_queue, task_queues_[0]->immediate_work_queue());
|
| + EXPECT_FALSE(chose_delayed_over_immediate);
|
| }
|
|
|
| struct ChooseOldestWithPriorityTestParam {
|
| int delayed_task_enqueue_order;
|
| int immediate_task_enqueue_order;
|
| - bool force_select_immediate;
|
| + int immediate_starvation_count;
|
| const char* expected_work_queue_name;
|
| + bool expected_did_starve_immediate_queue;
|
| };
|
|
|
| static const ChooseOldestWithPriorityTestParam
|
| kChooseOldestWithPriorityTestCases[] = {
|
| - {1, 2, false, "delayed"},
|
| - {1, 2, true, "immediate"},
|
| - {2, 1, false, "immediate"},
|
| - {2, 1, true, "immediate"},
|
| + {1, 2, 0, "delayed", true},
|
| + {1, 2, 1, "delayed", true},
|
| + {1, 2, 2, "delayed", true},
|
| + {1, 2, 3, "immediate", false},
|
| + {1, 2, 4, "immediate", false},
|
| + {2, 1, 4, "immediate", false},
|
| + {2, 1, 4, "immediate", false},
|
| };
|
|
|
| class ChooseOldestWithPriorityTest
|
| @@ -346,13 +359,18 @@ TEST_P(ChooseOldestWithPriorityTest, RoundRobinTest) {
|
| selector_.delayed_task_queue_sets()->OnPushQueue(
|
| task_queues_[0]->delayed_work_queue());
|
|
|
| - selector_.SetForceSelectImmediateForTest(GetParam().force_select_immediate);
|
| + selector_.SetImmediateStarvationCountForTest(
|
| + GetParam().immediate_starvation_count);
|
|
|
| WorkQueue* chosen_work_queue = nullptr;
|
| + bool chose_delayed_over_immediate = false;
|
| EXPECT_TRUE(selector_.ChooseOldestWithPriority(TaskQueue::NORMAL_PRIORITY,
|
| + &chose_delayed_over_immediate,
|
| &chosen_work_queue));
|
| EXPECT_EQ(chosen_work_queue->task_queue(), task_queues_[0].get());
|
| EXPECT_STREQ(chosen_work_queue->name(), GetParam().expected_work_queue_name);
|
| + EXPECT_EQ(chose_delayed_over_immediate,
|
| + GetParam().expected_did_starve_immediate_queue);
|
| }
|
|
|
| INSTANTIATE_TEST_CASE_P(ChooseOldestWithPriorityTest,
|
|
|