Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(317)

Unified Diff: Source/platform/scheduler/SchedulerTest.cpp

Issue 595023002: Implement idle task scheduling. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix comment Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/platform/scheduler/SchedulerTest.cpp
diff --git a/Source/platform/scheduler/SchedulerTest.cpp b/Source/platform/scheduler/SchedulerTest.cpp
index 75789407a196a6030bd9164a5e2ecf4d62205cf9..7822ccefde52d74cc75379e4cec3a55403bdb1a3 100644
--- a/Source/platform/scheduler/SchedulerTest.cpp
+++ b/Source/platform/scheduler/SchedulerTest.cpp
@@ -239,9 +239,11 @@ void unorderedTestTask(int value, int* result)
*result += value;
}
-void idleTestTask(int value, int* result, double allottedTime)
+void idleTestTask(bool* taskRun, double expectedDeadline, double deadlineSeconds)
{
- *result += value;
+ EXPECT_EQ(false, *taskRun);
+ EXPECT_EQ(expectedDeadline, deadlineSeconds);
+ *taskRun = true;
}
TEST_F(SchedulerTest, TestPostTask)
@@ -293,14 +295,30 @@ TEST_F(SchedulerTest, TestSharedTimer)
TEST_F(SchedulerTest, TestIdleTask)
{
- // TODO: Check task allottedTime when implemented in the scheduler.
- int result = 0;
- m_scheduler->postIdleTask(FROM_HERE, WTF::bind<double>(&idleTestTask, 1, &result));
- m_scheduler->postIdleTask(FROM_HERE, WTF::bind<double>(&idleTestTask, 1, &result));
- m_scheduler->postIdleTask(FROM_HERE, WTF::bind<double>(&idleTestTask, 1, &result));
- m_scheduler->postIdleTask(FROM_HERE, WTF::bind<double>(&idleTestTask, 1, &result));
+ bool taskRun = false;
+ double firstDeadline = 1.1;
+ double secondDeadline = 2.3;
+ m_platformSupport.setMonotonicTimeForTest(0.1);
+
+ m_scheduler->postIdleTask(FROM_HERE, WTF::bind<double>(&idleTestTask, &taskRun, secondDeadline));
+
+ runPendingTasks();
+ EXPECT_FALSE(taskRun); // Shouldn't run yet as no willBeginFrame.
+
+ m_scheduler->willBeginFrame(firstDeadline);
+ runPendingTasks();
+ EXPECT_FALSE(taskRun); // Shouldn't run yet as no didCommitFrameToCompositor.
+
+ m_platformSupport.setMonotonicTimeForTest(firstDeadline + 0.1);
+ m_scheduler->didCommitFrameToCompositor();
+ runPendingTasks();
+ EXPECT_FALSE(taskRun); // We missed the deadline.
+
+ m_scheduler->willBeginFrame(secondDeadline);
+ m_platformSupport.setMonotonicTimeForTest(secondDeadline - 0.1);
+ m_scheduler->didCommitFrameToCompositor();
runPendingTasks();
- EXPECT_EQ(4, result);
+ EXPECT_TRUE(taskRun);
}
TEST_F(SchedulerTest, TestTaskPrioritization_normalPolicy)

Powered by Google App Engine
This is Rietveld 408576698