Index: cc/scheduler/frame_rate_controller_unittest.cc |
diff --git a/cc/scheduler/frame_rate_controller_unittest.cc b/cc/scheduler/frame_rate_controller_unittest.cc |
index e7d75802eb3d183009278325bc851afa8ee8814f..ed7de67d539217b2bf689634037de6240d2d5b6b 100644 |
--- a/cc/scheduler/frame_rate_controller_unittest.cc |
+++ b/cc/scheduler/frame_rate_controller_unittest.cc |
@@ -19,9 +19,8 @@ class FakeFrameRateControllerClient : public FrameRateControllerClient { |
bool BeganFrame() const { return frame_count_ > 0; } |
int frame_count() const { return frame_count_; } |
- virtual void FrameRateControllerTick( |
- bool throttled, const BeginFrameArgs& args) OVERRIDE { |
- frame_count_ += throttled ? 0 : 1; |
+ virtual void FrameRateControllerTick(const BeginFrameArgs& args) OVERRIDE { |
+ frame_count_ += 1; |
} |
protected: |
@@ -50,14 +49,6 @@ TEST(FrameRateControllerTest, TestFrameThrottling_ImmediateAck) { |
EXPECT_TRUE(client.BeganFrame()); |
client.Reset(); |
- // Tell the controller we drew |
- controller.DidSwapBuffers(); |
- |
- // Tell the controller the frame ended 5ms later |
- time_source->SetNow(time_source->Now() + |
- base::TimeDelta::FromMilliseconds(5)); |
- controller.DidSwapBuffersComplete(); |
- |
// Trigger another frame, make sure BeginFrame runs again |
elapsed += task_runner->NextPendingTaskDelay(); |
// Sanity check that previous code didn't move time backward. |
@@ -67,145 +58,5 @@ TEST(FrameRateControllerTest, TestFrameThrottling_ImmediateAck) { |
EXPECT_TRUE(client.BeganFrame()); |
} |
-TEST(FrameRateControllerTest, TestFrameThrottling_TwoFramesInFlight) { |
brianderson
2014/03/13 21:11:52
I need to port these tests over to the scheduler.
|
- scoped_refptr<base::TestSimpleTaskRunner> task_runner = |
- new base::TestSimpleTaskRunner; |
- FakeFrameRateControllerClient client; |
- base::TimeDelta interval = base::TimeDelta::FromMicroseconds( |
- base::Time::kMicrosecondsPerSecond / 60); |
- scoped_refptr<FakeDelayBasedTimeSource> time_source = |
- FakeDelayBasedTimeSource::Create(interval, task_runner.get()); |
- FrameRateController controller(time_source); |
- |
- controller.SetClient(&client); |
- controller.SetActive(true); |
- controller.SetMaxSwapsPending(2); |
- |
- base::TimeTicks elapsed; // Muck around with time a bit |
- |
- // Trigger one frame, make sure the BeginFrame callback is called |
- elapsed += task_runner->NextPendingTaskDelay(); |
- time_source->SetNow(elapsed); |
- task_runner->RunPendingTasks(); |
- EXPECT_TRUE(client.BeganFrame()); |
- client.Reset(); |
- |
- // Tell the controller we drew |
- controller.DidSwapBuffers(); |
- |
- // Trigger another frame, make sure BeginFrame callback runs again |
- elapsed += task_runner->NextPendingTaskDelay(); |
- // Sanity check that previous code didn't move time backward. |
- EXPECT_GE(elapsed, time_source->Now()); |
- time_source->SetNow(elapsed); |
- task_runner->RunPendingTasks(); |
- EXPECT_TRUE(client.BeganFrame()); |
- client.Reset(); |
- |
- // Tell the controller we drew, again. |
- controller.DidSwapBuffers(); |
- |
- // Trigger another frame. Since two frames are pending, we should not draw. |
- elapsed += task_runner->NextPendingTaskDelay(); |
- // Sanity check that previous code didn't move time backward. |
- EXPECT_GE(elapsed, time_source->Now()); |
- time_source->SetNow(elapsed); |
- task_runner->RunPendingTasks(); |
- EXPECT_FALSE(client.BeganFrame()); |
- |
- // Tell the controller the first frame ended 5ms later |
- time_source->SetNow(time_source->Now() + |
- base::TimeDelta::FromMilliseconds(5)); |
- controller.DidSwapBuffersComplete(); |
- |
- // Tick should not have been called |
- EXPECT_FALSE(client.BeganFrame()); |
- |
- // Trigger yet another frame. Since one frames is pending, another |
- // BeginFrame callback should run. |
- elapsed += task_runner->NextPendingTaskDelay(); |
- // Sanity check that previous code didn't move time backward. |
- EXPECT_GE(elapsed, time_source->Now()); |
- time_source->SetNow(elapsed); |
- task_runner->RunPendingTasks(); |
- EXPECT_TRUE(client.BeganFrame()); |
-} |
- |
-TEST(FrameRateControllerTest, TestFrameThrottling_Unthrottled) { |
- scoped_refptr<base::TestSimpleTaskRunner> task_runner = |
- new base::TestSimpleTaskRunner; |
- FakeFrameRateControllerClient client; |
- FrameRateController controller(task_runner.get()); |
- |
- controller.SetClient(&client); |
- controller.SetMaxSwapsPending(2); |
- |
- // SetActive triggers 1st frame, make sure the BeginFrame callback |
- // is called |
- controller.SetActive(true); |
- task_runner->RunPendingTasks(); |
- EXPECT_TRUE(client.BeganFrame()); |
- client.Reset(); |
- |
- // Even if we don't call DidSwapBuffers, FrameRateController should |
- // still attempt to tick multiple times until it does result in |
- // a DidSwapBuffers. |
- task_runner->RunPendingTasks(); |
- EXPECT_TRUE(client.BeganFrame()); |
- client.Reset(); |
- |
- task_runner->RunPendingTasks(); |
- EXPECT_TRUE(client.BeganFrame()); |
- client.Reset(); |
- |
- // DidSwapBuffers triggers 2nd frame, make sure the BeginFrame callback is |
- // called |
- controller.DidSwapBuffers(); |
- task_runner->RunPendingTasks(); |
- EXPECT_TRUE(client.BeganFrame()); |
- client.Reset(); |
- |
- // DidSwapBuffers triggers 3rd frame (> max_frames_pending), |
- // make sure the BeginFrame callback is NOT called |
- controller.DidSwapBuffers(); |
- task_runner->RunPendingTasks(); |
- EXPECT_FALSE(client.BeganFrame()); |
- client.Reset(); |
- |
- // Make sure there is no pending task since we can't do anything until we |
- // receive a DidSwapBuffersComplete anyway. |
- EXPECT_FALSE(task_runner->HasPendingTask()); |
- |
- // DidSwapBuffersComplete triggers a frame, make sure the BeginFrame |
- // callback is called |
- controller.DidSwapBuffersComplete(); |
- task_runner->RunPendingTasks(); |
- EXPECT_TRUE(client.BeganFrame()); |
-} |
- |
-TEST(FrameRateControllerTest, TestFrameThrottling_NoDoubleTicking) { |
- scoped_refptr<base::TestSimpleTaskRunner> task_runner = |
- new base::TestSimpleTaskRunner; |
- FakeFrameRateControllerClient client; |
- FrameRateController controller(task_runner.get()); |
- controller.SetClient(&client); |
- |
- // SetActive triggers 1st frame and queues another tick task since the time |
- // source isn't throttling. |
- controller.SetActive(true); |
- task_runner->RunPendingTasks(); |
- EXPECT_TRUE(client.BeganFrame()); |
- client.Reset(); |
- EXPECT_TRUE(task_runner->HasPendingTask()); |
- |
- // Simulate a frame swap. This shouldn't queue a second tick task. |
- controller.DidSwapBuffers(); |
- controller.DidSwapBuffersComplete(); |
- |
- // The client should only be ticked once. |
- task_runner->RunPendingTasks(); |
- EXPECT_EQ(1, client.frame_count()); |
-} |
- |
} // namespace |
} // namespace cc |