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

Unified Diff: cc/CCFrameRateControllerTest.cpp

Issue 11108020: [cc] Change cc_tests.gyp filenames to Chromium style (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 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
« no previous file with comments | « cc/CCDrawQuadTest.cpp ('k') | cc/CCHeadsUpDisplayTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/CCFrameRateControllerTest.cpp
diff --git a/cc/CCFrameRateControllerTest.cpp b/cc/CCFrameRateControllerTest.cpp
deleted file mode 100644
index 5895c21d6cd940e51b3b69fba44e4fb99138f8c7..0000000000000000000000000000000000000000
--- a/cc/CCFrameRateControllerTest.cpp
+++ /dev/null
@@ -1,171 +0,0 @@
-// Copyright 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "config.h"
-
-#include "CCFrameRateController.h"
-
-#include "CCSchedulerTestCommon.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using namespace cc;
-using namespace WebKitTests;
-using namespace WTF;
-
-namespace {
-
-class FakeCCFrameRateControllerClient : public cc::CCFrameRateControllerClient {
-public:
- FakeCCFrameRateControllerClient() { reset(); }
-
- void reset() { m_vsyncTicked = false; }
- bool vsyncTicked() const { return m_vsyncTicked; }
-
- virtual void vsyncTick(bool throttled) { m_vsyncTicked = !throttled; }
-
-protected:
- bool m_vsyncTicked;
-};
-
-
-TEST(CCFrameRateControllerTest, TestFrameThrottling_ImmediateAck)
-{
- FakeCCThread thread;
- FakeCCFrameRateControllerClient client;
- base::TimeDelta interval = base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond / 60);
- RefPtr<FakeCCDelayBasedTimeSource> timeSource = FakeCCDelayBasedTimeSource::create(interval, &thread);
- CCFrameRateController controller(timeSource);
-
- controller.setClient(&client);
- controller.setActive(true);
-
- base::TimeTicks elapsed; // Muck around with time a bit
-
- // Trigger one frame, make sure the vsync callback is called
- elapsed += base::TimeDelta::FromMilliseconds(thread.pendingDelayMs());
- timeSource->setNow(elapsed);
- thread.runPendingTask();
- EXPECT_TRUE(client.vsyncTicked());
- client.reset();
-
- // Tell the controller we drew
- controller.didBeginFrame();
-
- // Tell the controller the frame ended 5ms later
- timeSource->setNow(timeSource->now() + base::TimeDelta::FromMilliseconds(5));
- controller.didFinishFrame();
-
- // Trigger another frame, make sure vsync runs again
- elapsed += base::TimeDelta::FromMilliseconds(thread.pendingDelayMs());
- EXPECT_TRUE(elapsed >= timeSource->now()); // Sanity check that previous code didn't move time backward.
- timeSource->setNow(elapsed);
- thread.runPendingTask();
- EXPECT_TRUE(client.vsyncTicked());
-}
-
-TEST(CCFrameRateControllerTest, TestFrameThrottling_TwoFramesInFlight)
-{
- FakeCCThread thread;
- FakeCCFrameRateControllerClient client;
- base::TimeDelta interval = base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond / 60);
- RefPtr<FakeCCDelayBasedTimeSource> timeSource = FakeCCDelayBasedTimeSource::create(interval, &thread);
- CCFrameRateController controller(timeSource);
-
- controller.setClient(&client);
- controller.setActive(true);
- controller.setMaxFramesPending(2);
-
- base::TimeTicks elapsed; // Muck around with time a bit
-
- // Trigger one frame, make sure the vsync callback is called
- elapsed += base::TimeDelta::FromMilliseconds(thread.pendingDelayMs());
- timeSource->setNow(elapsed);
- thread.runPendingTask();
- EXPECT_TRUE(client.vsyncTicked());
- client.reset();
-
- // Tell the controller we drew
- controller.didBeginFrame();
-
- // Trigger another frame, make sure vsync callback runs again
- elapsed += base::TimeDelta::FromMilliseconds(thread.pendingDelayMs());
- EXPECT_TRUE(elapsed >= timeSource->now()); // Sanity check that previous code didn't move time backward.
- timeSource->setNow(elapsed);
- thread.runPendingTask();
- EXPECT_TRUE(client.vsyncTicked());
- client.reset();
-
- // Tell the controller we drew, again.
- controller.didBeginFrame();
-
- // Trigger another frame. Since two frames are pending, we should not draw.
- elapsed += base::TimeDelta::FromMilliseconds(thread.pendingDelayMs());
- EXPECT_TRUE(elapsed >= timeSource->now()); // Sanity check that previous code didn't move time backward.
- timeSource->setNow(elapsed);
- thread.runPendingTask();
- EXPECT_FALSE(client.vsyncTicked());
-
- // Tell the controller the first frame ended 5ms later
- timeSource->setNow(timeSource->now() + base::TimeDelta::FromMilliseconds(5));
- controller.didFinishFrame();
-
- // Tick should not have been called
- EXPECT_FALSE(client.vsyncTicked());
-
- // Trigger yet another frame. Since one frames is pending, another vsync callback should run.
- elapsed += base::TimeDelta::FromMilliseconds(thread.pendingDelayMs());
- EXPECT_TRUE(elapsed >= timeSource->now()); // Sanity check that previous code didn't move time backward.
- timeSource->setNow(elapsed);
- thread.runPendingTask();
- EXPECT_TRUE(client.vsyncTicked());
-}
-
-TEST(CCFrameRateControllerTest, TestFrameThrottling_Unthrottled)
-{
- FakeCCThread thread;
- FakeCCFrameRateControllerClient client;
- CCFrameRateController controller(&thread);
-
- controller.setClient(&client);
- controller.setMaxFramesPending(2);
-
- // setActive triggers 1st frame, make sure the vsync callback is called
- controller.setActive(true);
- thread.runPendingTask();
- EXPECT_TRUE(client.vsyncTicked());
- client.reset();
-
- // Even if we don't call didBeginFrame, CCFrameRateController should
- // still attempt to vsync tick multiple times until it does result in
- // a didBeginFrame.
- thread.runPendingTask();
- EXPECT_TRUE(client.vsyncTicked());
- client.reset();
-
- thread.runPendingTask();
- EXPECT_TRUE(client.vsyncTicked());
- client.reset();
-
- // didBeginFrame triggers 2nd frame, make sure the vsync callback is called
- controller.didBeginFrame();
- thread.runPendingTask();
- EXPECT_TRUE(client.vsyncTicked());
- client.reset();
-
- // didBeginFrame triggers 3rd frame (> maxFramesPending), make sure the vsync callback is NOT called
- controller.didBeginFrame();
- thread.runPendingTask();
- EXPECT_FALSE(client.vsyncTicked());
- client.reset();
-
- // Make sure there is no pending task since we can't do anything until we receive a didFinishFrame anyway.
- EXPECT_FALSE(thread.hasPendingTask());
-
- // didFinishFrame triggers a frame, make sure the vsync callback is called
- controller.didFinishFrame();
- thread.runPendingTask();
- EXPECT_TRUE(client.vsyncTicked());
-}
-
-}
« no previous file with comments | « cc/CCDrawQuadTest.cpp ('k') | cc/CCHeadsUpDisplayTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698