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

Unified Diff: cc/CCTextureUpdateControllerTest.cpp

Issue 10933095: cc: Remove resource updates from scheduler. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 3 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
Index: cc/CCTextureUpdateControllerTest.cpp
diff --git a/cc/CCTextureUpdateControllerTest.cpp b/cc/CCTextureUpdateControllerTest.cpp
index 8d47f7c27f6412dab9193f22b778de1ae86d3e14..177c18fb4a66c7eeee037805bf65042996eb0099 100644
--- a/cc/CCTextureUpdateControllerTest.cpp
+++ b/cc/CCTextureUpdateControllerTest.cpp
@@ -537,149 +537,96 @@ public:
return adoptPtr(new FakeCCTextureUpdateController(client, thread, queue, resourceProvider, copier, uploader));
}
- void setMonotonicTimeNow(double time) { m_monotonicTimeNow = time; }
- virtual double monotonicTimeNow() const OVERRIDE { return m_monotonicTimeNow; }
- void setUpdateMoreTexturesTime(double time) { m_updateMoreTexturesTime = time; }
- virtual double updateMoreTexturesTime() const OVERRIDE { return m_updateMoreTexturesTime; }
void setUpdateMoreTexturesSize(size_t size) { m_updateMoreTexturesSize = size; }
virtual size_t updateMoreTexturesSize() const OVERRIDE { return m_updateMoreTexturesSize; }
protected:
FakeCCTextureUpdateController(WebCore::CCTextureUpdateControllerClient* client, WebCore::CCThread* thread, PassOwnPtr<CCTextureUpdateQueue> queue, CCResourceProvider* resourceProvider, TextureCopier* copier, TextureUploader* uploader)
: WebCore::CCTextureUpdateController(client, thread, queue, resourceProvider, copier, uploader)
- , m_monotonicTimeNow(0)
- , m_updateMoreTexturesTime(0)
, m_updateMoreTexturesSize(0) { }
- double m_monotonicTimeNow;
- double m_updateMoreTexturesTime;
size_t m_updateMoreTexturesSize;
};
-static void runPendingTask(FakeCCThread* thread, FakeCCTextureUpdateController* controller)
-{
- EXPECT_TRUE(thread->hasPendingTask());
- controller->setMonotonicTimeNow(controller->monotonicTimeNow() + thread->pendingDelayMs() / 1000.0);
- thread->runPendingTask();
-}
-
-TEST_F(CCTextureUpdateControllerTest, UpdateMoreTextures)
+TEST_F(CCTextureUpdateControllerTest, OneFullUpdate)
{
FakeCCTextureUpdateControllerClient client;
FakeCCThread thread;
setMaxUploadCountPerUpdate(1);
- appendFullUploadsToUpdateQueue(3);
+ appendFullUploadsToUpdateQueue(1);
appendPartialUploadsToUpdateQueue(0);
DebugScopedSetImplThread implThread;
OwnPtr<FakeCCTextureUpdateController> controller(FakeCCTextureUpdateController::create(&client, &thread, m_queue.release(), m_resourceProvider.get(), &m_copier, &m_uploader));
- controller->setMonotonicTimeNow(0);
- controller->setUpdateMoreTexturesTime(0.1);
controller->setUpdateMoreTexturesSize(1);
- // Not enough time for any updates.
- controller->updateMoreTextures(0.09);
- EXPECT_FALSE(thread.hasPendingTask());
- EXPECT_EQ(0, m_numBeginUploads);
- EXPECT_EQ(0, m_numEndUploads);
-
- controller->setMonotonicTimeNow(0);
- controller->setUpdateMoreTexturesTime(0.1);
- controller->setUpdateMoreTexturesSize(1);
- // Only enough time for 1 update.
- controller->updateMoreTextures(0.12);
- runPendingTask(&thread, controller.get());
+ controller->start();
+ EXPECT_TRUE(thread.hasPendingTask());
+ thread.runPendingTask();
EXPECT_FALSE(thread.hasPendingTask());
+ EXPECT_TRUE(client.completedCalled());
EXPECT_EQ(1, m_numBeginUploads);
EXPECT_EQ(1, m_numEndUploads);
EXPECT_EQ(1, m_numTotalUploads);
-
- controller->setMonotonicTimeNow(0);
- controller->setUpdateMoreTexturesTime(0.1);
- controller->setUpdateMoreTexturesSize(1);
- // Enough time for 2 updates.
- controller->updateMoreTextures(0.22);
- runPendingTask(&thread, controller.get());
- runPendingTask(&thread, controller.get());
- EXPECT_FALSE(thread.hasPendingTask());
- EXPECT_TRUE(client.completedCalled());
- EXPECT_EQ(3, m_numBeginUploads);
- EXPECT_EQ(3, m_numEndUploads);
- EXPECT_EQ(3, m_numTotalUploads);
}
-TEST_F(CCTextureUpdateControllerTest, NoMoreUpdates)
+TEST_F(CCTextureUpdateControllerTest, TwoPartialUpdates)
{
FakeCCTextureUpdateControllerClient client;
FakeCCThread thread;
setMaxUploadCountPerUpdate(1);
- appendFullUploadsToUpdateQueue(2);
- appendPartialUploadsToUpdateQueue(0);
+ appendFullUploadsToUpdateQueue(0);
+ appendPartialUploadsToUpdateQueue(2);
DebugScopedSetImplThread implThread;
OwnPtr<FakeCCTextureUpdateController> controller(FakeCCTextureUpdateController::create(&client, &thread, m_queue.release(), m_resourceProvider.get(), &m_copier, &m_uploader));
- controller->setMonotonicTimeNow(0);
- controller->setUpdateMoreTexturesTime(0.1);
controller->setUpdateMoreTexturesSize(1);
- // Enough time for 3 updates but only 2 necessary.
- controller->updateMoreTextures(0.31);
- runPendingTask(&thread, controller.get());
- runPendingTask(&thread, controller.get());
+ controller->start();
+ EXPECT_TRUE(thread.hasPendingTask());
+ thread.runPendingTask();
EXPECT_FALSE(thread.hasPendingTask());
EXPECT_TRUE(client.completedCalled());
- EXPECT_EQ(2, m_numBeginUploads);
- EXPECT_EQ(2, m_numEndUploads);
- EXPECT_EQ(2, m_numTotalUploads);
+ EXPECT_EQ(0, m_numBeginUploads);
+ EXPECT_EQ(0, m_numEndUploads);
+ EXPECT_EQ(0, m_numTotalUploads);
- controller->setMonotonicTimeNow(0);
- controller->setUpdateMoreTexturesTime(0.1);
- controller->setUpdateMoreTexturesSize(1);
- // Enough time for updates but no more updates left.
- controller->updateMoreTextures(0.31);
- // 0-delay task used to call updateTexturesCompleted().
- runPendingTask(&thread, controller.get());
- EXPECT_FALSE(thread.hasPendingTask());
- EXPECT_TRUE(client.completedCalled());
- EXPECT_EQ(2, m_numBeginUploads);
- EXPECT_EQ(2, m_numEndUploads);
+ controller->updateAllTexturesNow();
+ EXPECT_EQ(1, m_numBeginUploads);
+ EXPECT_EQ(1, m_numEndUploads);
EXPECT_EQ(2, m_numTotalUploads);
}
-TEST_F(CCTextureUpdateControllerTest, UpdatesCompleteInFiniteTime)
+TEST_F(CCTextureUpdateControllerTest, FourFullUpdatesAndOnePartialUpdate)
{
FakeCCTextureUpdateControllerClient client;
FakeCCThread thread;
- setMaxUploadCountPerUpdate(1);
- appendFullUploadsToUpdateQueue(2);
- appendPartialUploadsToUpdateQueue(0);
+ setMaxUploadCountPerUpdate(2);
+ appendFullUploadsToUpdateQueue(4);
+ appendPartialUploadsToUpdateQueue(1);
DebugScopedSetImplThread implThread;
OwnPtr<FakeCCTextureUpdateController> controller(FakeCCTextureUpdateController::create(&client, &thread, m_queue.release(), m_resourceProvider.get(), &m_copier, &m_uploader));
- controller->setMonotonicTimeNow(0);
- controller->setUpdateMoreTexturesTime(0.5);
- controller->setUpdateMoreTexturesSize(1);
-
- for (int i = 0; i < 100; i++) {
- if (client.completedCalled())
- break;
-
- // Not enough time for any updates.
- controller->updateMoreTextures(0.4);
-
- if (thread.hasPendingTask())
- runPendingTask(&thread, controller.get());
- }
-
+ controller->setUpdateMoreTexturesSize(2);
+ controller->start();
+ EXPECT_TRUE(thread.hasPendingTask());
+ thread.runPendingTask();
+ EXPECT_TRUE(thread.hasPendingTask());
+ thread.runPendingTask();
EXPECT_FALSE(thread.hasPendingTask());
EXPECT_TRUE(client.completedCalled());
EXPECT_EQ(2, m_numBeginUploads);
EXPECT_EQ(2, m_numEndUploads);
- EXPECT_EQ(2, m_numTotalUploads);
+ EXPECT_EQ(4, m_numTotalUploads);
+
+ controller->updateAllTexturesNow();
+ EXPECT_EQ(3, m_numBeginUploads);
+ EXPECT_EQ(3, m_numEndUploads);
+ EXPECT_EQ(5, m_numTotalUploads);
}
} // namespace

Powered by Google App Engine
This is Rietveld 408576698