Commit 2f6cfe5c authored by Katie Dillon's avatar Katie Dillon Committed by Chromium LUCI CQ

[scheduling] Remove call to GetTaskQueue() in FrameSchedulerImplUnittest.

This CL is a followup to this CL[1] and removes an unecessary call to
GetTaskQueue() as a step towards removing direct access to a
MainThreadTaskQueue's TaskQueue all together.

Specifically, a test was using the task queues name to track whether or
not a task had been run off that queue. This CL modifies this to follow
the same pattern that is used in MainThreadSchedulerImplUnittest (ie
passing a string of letters to a function that posts tasks to the
correct queues and records that letter when the queue runs the task).

[1] https://chromium-review.googlesource.com/c/chromium/src/+/2453591

Bug: 1143007
Change-Id: Ic76c080c78d0caa0464770872150d4e9bdcdb97d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2617871Reviewed-by: default avatarScott Haseley <shaseley@chromium.org>
Commit-Queue: Katie Dillon <kdillon@chromium.org>
Cr-Commit-Position: refs/heads/master@{#842173}
parent d5351eb3
...@@ -288,6 +288,52 @@ class FrameSchedulerImplTest : public testing::Test { ...@@ -288,6 +288,52 @@ class FrameSchedulerImplTest : public testing::Test {
} }
} }
// Helper for posting several tasks to specific queues. |task_descriptor| is a
// string with space delimited task identifiers. The first letter of each task
// identifier specifies the task queue:
// - 'L': Loading task queue
// - 'T': Throttleable task queue
// - 'P': Pausable task queue
// - 'U': Unpausable task queue
// - 'D': Deferrable task queue
void PostTestTasksToQueuesWithTrait(Vector<String>* run_order,
const String& task_descriptor) {
std::istringstream stream(task_descriptor.Utf8());
while (!stream.eof()) {
std::string task;
stream >> task;
switch (task[0]) {
case 'L':
LoadingTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
FROM_HERE, base::BindOnce(&AppendToVectorTestTask, run_order,
String::FromUTF8(task)));
break;
case 'T':
ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
FROM_HERE, base::BindOnce(&AppendToVectorTestTask, run_order,
String::FromUTF8(task)));
break;
case 'P':
PausableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
FROM_HERE, base::BindOnce(&AppendToVectorTestTask, run_order,
String::FromUTF8(task)));
break;
case 'U':
UnpausableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
FROM_HERE, base::BindOnce(&AppendToVectorTestTask, run_order,
String::FromUTF8(task)));
break;
case 'D':
DeferrableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
FROM_HERE, base::BindOnce(&AppendToVectorTestTask, run_order,
String::FromUTF8(task)));
break;
default:
NOTREACHED();
}
}
}
static void ResetForNavigation(FrameSchedulerImpl* frame_scheduler) { static void ResetForNavigation(FrameSchedulerImpl* frame_scheduler) {
frame_scheduler->ResetForNavigation(); frame_scheduler->ResetForNavigation();
} }
...@@ -489,10 +535,6 @@ void IncrementCounter(int* counter) { ...@@ -489,10 +535,6 @@ void IncrementCounter(int* counter) {
++*counter; ++*counter;
} }
void RecordQueueName(String name, Vector<String>* tasks) {
tasks->push_back(std::move(name));
}
// Simulate running a task of a particular length by fast forwarding the task // Simulate running a task of a particular length by fast forwarding the task
// environment clock, which is used to determine the wall time of a task. // environment clock, which is used to determine the wall time of a task.
void RunTaskOfLength(base::test::TaskEnvironment* task_environment, void RunTaskOfLength(base::test::TaskEnvironment* task_environment,
...@@ -963,27 +1005,7 @@ TEST_F(FrameSchedulerImplTest, FramePostsCpuTasksThroughReloadRenavigate) { ...@@ -963,27 +1005,7 @@ TEST_F(FrameSchedulerImplTest, FramePostsCpuTasksThroughReloadRenavigate) {
TEST_F(FrameSchedulerImplTest, PageFreezeWithKeepActive) { TEST_F(FrameSchedulerImplTest, PageFreezeWithKeepActive) {
Vector<String> tasks; Vector<String> tasks;
LoadingTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask( PostTestTasksToQueuesWithTrait(&tasks, "L1 T1 D1 P1 U1");
FROM_HERE,
base::BindOnce(&RecordQueueName,
LoadingTaskQueue()->GetTaskQueue()->GetName(), &tasks));
ThrottleableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
FROM_HERE,
base::BindOnce(&RecordQueueName,
ThrottleableTaskQueue()->GetTaskQueue()->GetName(),
&tasks));
DeferrableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
FROM_HERE,
base::BindOnce(&RecordQueueName,
DeferrableTaskQueue()->GetTaskQueue()->GetName(), &tasks));
PausableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
FROM_HERE,
base::BindOnce(&RecordQueueName,
PausableTaskQueue()->GetTaskQueue()->GetName(), &tasks));
UnpausableTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask(
FROM_HERE,
base::BindOnce(&RecordQueueName,
UnpausableTaskQueue()->GetTaskQueue()->GetName(), &tasks));
page_scheduler_->SetKeepActive(true); // say we have a Service Worker page_scheduler_->SetKeepActive(true); // say we have a Service Worker
page_scheduler_->SetPageVisible(false); page_scheduler_->SetPageVisible(false);
...@@ -992,30 +1014,19 @@ TEST_F(FrameSchedulerImplTest, PageFreezeWithKeepActive) { ...@@ -992,30 +1014,19 @@ TEST_F(FrameSchedulerImplTest, PageFreezeWithKeepActive) {
EXPECT_THAT(tasks, UnorderedElementsAre()); EXPECT_THAT(tasks, UnorderedElementsAre());
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
// Everything runs except throttleable tasks (timers) // Everything runs except throttleable tasks (timers)
EXPECT_THAT(tasks, EXPECT_THAT(tasks, UnorderedElementsAre("L1", "D1", "P1", "U1"));
UnorderedElementsAre(
String(LoadingTaskQueue()->GetTaskQueue()->GetName()),
String(DeferrableTaskQueue()->GetTaskQueue()->GetName()),
String(PausableTaskQueue()->GetTaskQueue()->GetName()),
String(UnpausableTaskQueue()->GetTaskQueue()->GetName())));
tasks.clear(); tasks.clear();
LoadingTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask( PostTestTasksToQueuesWithTrait(&tasks, "L1");
FROM_HERE,
base::BindOnce(&RecordQueueName,
LoadingTaskQueue()->GetTaskQueue()->GetName(), &tasks));
EXPECT_THAT(tasks, UnorderedElementsAre()); EXPECT_THAT(tasks, UnorderedElementsAre());
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
// loading task runs // loading task runs
EXPECT_THAT(tasks, UnorderedElementsAre(String( EXPECT_THAT(tasks, UnorderedElementsAre("L1"));
LoadingTaskQueue()->GetTaskQueue()->GetName())));
tasks.clear(); tasks.clear();
LoadingTaskQueue()->GetTaskRunnerWithDefaultTaskType()->PostTask( PostTestTasksToQueuesWithTrait(&tasks, "L1");
FROM_HERE,
base::BindOnce(&RecordQueueName,
LoadingTaskQueue()->GetTaskQueue()->GetName(), &tasks));
// KeepActive is false when Service Worker stops. // KeepActive is false when Service Worker stops.
page_scheduler_->SetKeepActive(false); page_scheduler_->SetKeepActive(false);
EXPECT_THAT(tasks, UnorderedElementsAre()); EXPECT_THAT(tasks, UnorderedElementsAre());
...@@ -1027,8 +1038,7 @@ TEST_F(FrameSchedulerImplTest, PageFreezeWithKeepActive) { ...@@ -1027,8 +1038,7 @@ TEST_F(FrameSchedulerImplTest, PageFreezeWithKeepActive) {
EXPECT_THAT(tasks, UnorderedElementsAre()); EXPECT_THAT(tasks, UnorderedElementsAre());
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
// loading task runs // loading task runs
EXPECT_THAT(tasks, UnorderedElementsAre(String( EXPECT_THAT(tasks, UnorderedElementsAre("L1"));
LoadingTaskQueue()->GetTaskQueue()->GetName())));
} }
class FrameSchedulerImplTestWithUnfreezableLoading class FrameSchedulerImplTestWithUnfreezableLoading
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment