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

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: Another rebase 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
« no previous file with comments | « cc/CCTextureUpdateController.cpp ('k') | cc/CCThreadProxy.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/CCTextureUpdateControllerTest.cpp
diff --git a/cc/CCTextureUpdateControllerTest.cpp b/cc/CCTextureUpdateControllerTest.cpp
index 2d2aec539d437232ee27813446aa0ffcc496ec93..efc11aca81a142cdf9c635e970735163556f6fa9 100644
--- a/cc/CCTextureUpdateControllerTest.cpp
+++ b/cc/CCTextureUpdateControllerTest.cpp
@@ -381,149 +381,92 @@ public:
return adoptPtr(new FakeCCTextureUpdateController(client, thread, queue, resourceProvider, 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(cc::CCTextureUpdateControllerClient* client, cc::CCThread* thread, PassOwnPtr<CCTextureUpdateQueue> queue, CCResourceProvider* resourceProvider, TextureUploader* uploader)
: cc::CCTextureUpdateController(client, thread, queue, resourceProvider, 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_uploader));
- controller->setMonotonicTimeNow(0);
- controller->setUpdateMoreTexturesTime(0.1);
- controller->setUpdateMoreTexturesSize(1);
- // Not enough time for any updates.
- controller->performMoreUpdates(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->performMoreUpdates(0.12);
- runPendingTask(&thread, controller.get());
+ controller->start();
+ EXPECT_TRUE(thread.hasPendingTask());
+ thread.runPendingTask();
EXPECT_FALSE(thread.hasPendingTask());
+ EXPECT_TRUE(client.readyToFinalizeCalled());
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->performMoreUpdates(0.22);
- runPendingTask(&thread, controller.get());
- runPendingTask(&thread, controller.get());
- EXPECT_FALSE(thread.hasPendingTask());
- EXPECT_TRUE(client.readyToFinalizeCalled());
- 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);
+ setMaxUploadCountPerUpdate(2);
+ appendFullUploadsToUpdateQueue(0);
+ appendPartialUploadsToUpdateQueue(2);
DebugScopedSetImplThread implThread;
OwnPtr<FakeCCTextureUpdateController> controller(FakeCCTextureUpdateController::create(&client, &thread, m_queue.release(), m_resourceProvider.get(), &m_uploader));
- controller->setMonotonicTimeNow(0);
- controller->setUpdateMoreTexturesTime(0.1);
- controller->setUpdateMoreTexturesSize(1);
- // Enough time for 3 updates but only 2 necessary.
- controller->performMoreUpdates(0.31);
- runPendingTask(&thread, controller.get());
- runPendingTask(&thread, controller.get());
+ controller->setUpdateMoreTexturesSize(2);
+ controller->start();
+ EXPECT_TRUE(thread.hasPendingTask());
+ thread.runPendingTask();
EXPECT_FALSE(thread.hasPendingTask());
EXPECT_TRUE(client.readyToFinalizeCalled());
- 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->performMoreUpdates(0.31);
- // 0-delay task used to call readyToFinalizeTextureUpdates().
- runPendingTask(&thread, controller.get());
- EXPECT_FALSE(thread.hasPendingTask());
- EXPECT_TRUE(client.readyToFinalizeCalled());
- EXPECT_EQ(2, m_numBeginUploads);
- EXPECT_EQ(2, m_numEndUploads);
+ controller->finalize();
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_uploader));
- controller->setMonotonicTimeNow(0);
- controller->setUpdateMoreTexturesTime(0.5);
- controller->setUpdateMoreTexturesSize(1);
-
- for (int i = 0; i < 100; i++) {
- if (client.readyToFinalizeCalled())
- break;
-
- // Not enough time for any updates.
- controller->performMoreUpdates(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.readyToFinalizeCalled());
EXPECT_EQ(2, m_numBeginUploads);
EXPECT_EQ(2, m_numEndUploads);
- EXPECT_EQ(2, m_numTotalUploads);
+ EXPECT_EQ(4, m_numTotalUploads);
+
+ controller->finalize();
+ EXPECT_EQ(5, m_numTotalUploads);
}
TEST_F(CCTextureUpdateControllerTest, ClearUploadsToEvictedResources)
« no previous file with comments | « cc/CCTextureUpdateController.cpp ('k') | cc/CCThreadProxy.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698