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) |