Chromium Code Reviews| Index: Source/platform/scheduler/SchedulerTest.cpp |
| diff --git a/Source/platform/scheduler/SchedulerTest.cpp b/Source/platform/scheduler/SchedulerTest.cpp |
| index b2f468c265dce763949d97653afef9b091ddd71d..2a56552d79a461769533f4a20553a260a394b57f 100644 |
| --- a/Source/platform/scheduler/SchedulerTest.cpp |
| +++ b/Source/platform/scheduler/SchedulerTest.cpp |
| @@ -467,6 +467,13 @@ TEST_F(SchedulerTest, TestInputEventDoesNotTriggerShouldYield_InNormalMode) |
| EXPECT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
| } |
| +TEST_F(SchedulerTest, TestDidReceiveInputEventDoesNotTriggerShouldYield) |
| +{ |
| + m_scheduler->didReceiveInputEvent(); |
| + |
| + EXPECT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
| +} |
| + |
| TEST_F(SchedulerTest, TestCompositorEventDoesNotTriggerShouldYield_InNormalMode) |
| { |
| m_scheduler->postCompositorTask(FROM_HERE, WTF::bind(&dummyTask)); |
| @@ -474,7 +481,17 @@ TEST_F(SchedulerTest, TestCompositorEventDoesNotTriggerShouldYield_InNormalMode) |
| EXPECT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
| } |
| -TEST_F(SchedulerTest, TestInputEventDoesTriggerShouldYield_InLowSchedulerPolicy) |
| +TEST_F(SchedulerTest, TestCompositorEventDoesTriggerShouldYieldAfterDidReceiveInputEvent) |
| +{ |
| + m_scheduler->didReceiveInputEvent(); |
| + |
| + ASSERT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
| + m_scheduler->postCompositorTask(FROM_HERE, WTF::bind(&dummyTask)); |
|
Sami
2014/09/11 15:12:05
This problem was here already before, but should b
alexclarke
2014/09/11 15:21:12
Done.
|
| + |
| + EXPECT_TRUE(m_scheduler->shouldYieldForHighPriorityWork()); |
| +} |
| + |
| +TEST_F(SchedulerTest, TestInputEventDoesTriggerShouldYield_InCompositorPriorityMode) |
| { |
| m_scheduler->enterSchedulerPolicy(SchedulerForTest::CompositorPriority); |
| m_scheduler->postInputTask(FROM_HERE, WTF::bind(&dummyTask)); |
| @@ -482,7 +499,7 @@ TEST_F(SchedulerTest, TestInputEventDoesTriggerShouldYield_InLowSchedulerPolicy) |
| EXPECT_TRUE(m_scheduler->shouldYieldForHighPriorityWork()); |
| } |
| -TEST_F(SchedulerTest, TestCompositorEventDoesTriggerShouldYield_InLowSchedulerPolicy) |
| +TEST_F(SchedulerTest, TestCompositorEventDoesTriggerShouldYield_InCompositorPriorityMode) |
| { |
| m_scheduler->enterSchedulerPolicy(SchedulerForTest::CompositorPriority); |
| m_scheduler->postCompositorTask(FROM_HERE, WTF::bind(&dummyTask)); |
| @@ -505,4 +522,21 @@ TEST_F(SchedulerTest, TestCompositorEvent_LowSchedulerPolicyDoesntLastLong) |
| EXPECT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
| } |
| +TEST_F(SchedulerTest, testDidReceiveInputEvent_DoesntTriggerLowLatencyModeForLong) |
| +{ |
| + m_platformSupport.setMonotonicTimeForTest(1000.0); |
| + |
| + // Note the latency mode gets reset by executeHighPriorityTasks, so we need a dummy task here |
| + // to make sure runPendingTasks triggers executeHighPriorityTasks. |
| + m_scheduler->postCompositorTask(FROM_HERE, WTF::bind(&dummyTask)); |
| + m_scheduler->didReceiveInputEvent(); |
| + m_platformSupport.setMonotonicTimeForTest(1000.5); |
| + runPendingTasks(); |
| + |
| + ASSERT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
| + m_scheduler->postCompositorTask(FROM_HERE, WTF::bind(&dummyTask)); |
| + |
| + EXPECT_FALSE(m_scheduler->shouldYieldForHighPriorityWork()); |
| +} |
| + |
| } // namespace |