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 |