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