| 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)
|
|
|