Index: cc/CCTextureUpdateControllerTest.cpp |
diff --git a/cc/CCTextureUpdateControllerTest.cpp b/cc/CCTextureUpdateControllerTest.cpp |
index bae57a6524bf94e0f5a62b23ada45cb75933c038..418aeb3079a3ef14714c063e8e0faee2dcd55a26 100644 |
--- a/cc/CCTextureUpdateControllerTest.cpp |
+++ b/cc/CCTextureUpdateControllerTest.cpp |
@@ -243,10 +243,9 @@ TEST_F(CCTextureUpdateControllerTest, ZeroUploads) |
{ |
appendFullUploadsToUpdateQueue(0); |
appendPartialUploadsToUpdateQueue(0); |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
+ DebugScopedSetImplThread implThread; |
+ CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get()); |
- EXPECT_EQ(0, m_numBeginUploads); |
- EXPECT_EQ(0, m_numEndUploads); |
EXPECT_EQ(0, m_numPreviousFlushes); |
EXPECT_EQ(0, m_numPreviousUploads); |
} |
@@ -258,10 +257,8 @@ TEST_F(CCTextureUpdateControllerTest, OneFullUpload) |
appendFullUploadsToUpdateQueue(1); |
appendPartialUploadsToUpdateQueue(0); |
DebugScopedSetImplThread implThread; |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
+ CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get()); |
- EXPECT_EQ(1, m_numBeginUploads); |
- EXPECT_EQ(1, m_numEndUploads); |
EXPECT_EQ(1, m_numPreviousFlushes); |
EXPECT_EQ(1, m_numPreviousUploads); |
} |
@@ -271,10 +268,8 @@ TEST_F(CCTextureUpdateControllerTest, OnePartialUpload) |
appendFullUploadsToUpdateQueue(0); |
appendPartialUploadsToUpdateQueue(1); |
DebugScopedSetImplThread implThread; |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
+ CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get()); |
- EXPECT_EQ(1, m_numBeginUploads); |
- EXPECT_EQ(1, m_numEndUploads); |
EXPECT_EQ(1, m_numPreviousFlushes); |
EXPECT_EQ(1, m_numPreviousUploads); |
} |
@@ -284,237 +279,51 @@ TEST_F(CCTextureUpdateControllerTest, OneFullOnePartialUpload) |
appendFullUploadsToUpdateQueue(1); |
appendPartialUploadsToUpdateQueue(1); |
DebugScopedSetImplThread implThread; |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
+ CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get()); |
- // We expect the full uploads to be followed by a flush |
- // before the partial uploads begin. |
- EXPECT_EQ(1, m_numBeginUploads); |
- EXPECT_EQ(1, m_numEndUploads); |
- EXPECT_EQ(2, m_numPreviousFlushes); |
+ EXPECT_EQ(1, m_numPreviousFlushes); |
EXPECT_EQ(2, m_numPreviousUploads); |
} |
-// NO REMAINDER TESTS |
// This class of tests upload a number of textures that is a multiple of the flush period. |
const int fullUploadFlushMultipler = 7; |
-const int fullNoRemainderCount = fullUploadFlushMultipler * kFlushPeriodFull; |
+const int fullCount = fullUploadFlushMultipler * kFlushPeriodFull; |
const int partialUploadFlushMultipler = 11; |
-const int partialNoRemainderCount = partialUploadFlushMultipler * kFlushPeriodPartial; |
+const int partialCount = partialUploadFlushMultipler * kFlushPeriodPartial; |
-TEST_F(CCTextureUpdateControllerTest, ManyFullUploadsNoRemainder) |
+TEST_F(CCTextureUpdateControllerTest, ManyFullUploads) |
{ |
- appendFullUploadsToUpdateQueue(fullNoRemainderCount); |
+ appendFullUploadsToUpdateQueue(fullCount); |
appendPartialUploadsToUpdateQueue(0); |
DebugScopedSetImplThread implThread; |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
+ CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get()); |
- EXPECT_EQ(1, m_numBeginUploads); |
- EXPECT_EQ(1, m_numEndUploads); |
EXPECT_EQ(fullUploadFlushMultipler, m_numPreviousFlushes); |
- EXPECT_EQ(fullNoRemainderCount, m_numPreviousUploads); |
+ EXPECT_EQ(fullCount, m_numPreviousUploads); |
} |
-TEST_F(CCTextureUpdateControllerTest, ManyPartialUploadsNoRemainder) |
+TEST_F(CCTextureUpdateControllerTest, ManyPartialUploads) |
{ |
appendFullUploadsToUpdateQueue(0); |
- appendPartialUploadsToUpdateQueue(partialNoRemainderCount); |
+ appendPartialUploadsToUpdateQueue(partialCount); |
DebugScopedSetImplThread implThread; |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
+ CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get()); |
- EXPECT_EQ(1, m_numBeginUploads); |
- EXPECT_EQ(1, m_numEndUploads); |
EXPECT_EQ(partialUploadFlushMultipler, m_numPreviousFlushes); |
- EXPECT_EQ(partialNoRemainderCount, m_numPreviousUploads); |
-} |
- |
-TEST_F(CCTextureUpdateControllerTest, ManyFullManyPartialUploadsNoRemainder) |
-{ |
- appendFullUploadsToUpdateQueue(fullNoRemainderCount); |
- appendPartialUploadsToUpdateQueue(partialNoRemainderCount); |
- DebugScopedSetImplThread implThread; |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
- |
- EXPECT_EQ(1, m_numBeginUploads); |
- EXPECT_EQ(1, m_numEndUploads); |
- EXPECT_EQ(fullUploadFlushMultipler + partialUploadFlushMultipler, m_numPreviousFlushes); |
- EXPECT_EQ(fullNoRemainderCount + partialNoRemainderCount, m_numPreviousUploads); |
-} |
- |
- |
-// MIN/MAX REMAINDER TESTS |
-// This class of tests mix and match uploading 1 more and 1 less texture |
-// than a multiple of the flush period. |
- |
-const int fullMinRemainderCount = fullNoRemainderCount + 1; |
-const int fullMaxRemainderCount = fullNoRemainderCount - 1; |
-const int partialMinRemainderCount = partialNoRemainderCount + 1; |
-const int partialMaxRemainderCount = partialNoRemainderCount - 1; |
- |
-TEST_F(CCTextureUpdateControllerTest, ManyFullAndPartialMinRemainder) |
-{ |
- appendFullUploadsToUpdateQueue(fullMinRemainderCount); |
- appendPartialUploadsToUpdateQueue(partialMinRemainderCount); |
- DebugScopedSetImplThread implThread; |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
- |
- EXPECT_EQ(1, m_numBeginUploads); |
- EXPECT_EQ(1, m_numEndUploads); |
- EXPECT_EQ(fullUploadFlushMultipler + partialUploadFlushMultipler + 2, m_numPreviousFlushes); |
- EXPECT_EQ(fullMinRemainderCount + partialMinRemainderCount, m_numPreviousUploads); |
+ EXPECT_EQ(partialCount, m_numPreviousUploads); |
} |
-TEST_F(CCTextureUpdateControllerTest, ManyFullAndPartialUploadsMaxRemainder) |
+TEST_F(CCTextureUpdateControllerTest, ManyFullManyPartialUploads) |
{ |
- appendFullUploadsToUpdateQueue(fullMaxRemainderCount); |
- appendPartialUploadsToUpdateQueue(partialMaxRemainderCount); |
+ appendFullUploadsToUpdateQueue(fullCount); |
+ appendPartialUploadsToUpdateQueue(partialCount); |
DebugScopedSetImplThread implThread; |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
+ CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get()); |
- EXPECT_EQ(1, m_numBeginUploads); |
- EXPECT_EQ(1, m_numEndUploads); |
EXPECT_EQ(fullUploadFlushMultipler + partialUploadFlushMultipler, m_numPreviousFlushes); |
- EXPECT_EQ(fullMaxRemainderCount + partialMaxRemainderCount, m_numPreviousUploads); |
-} |
- |
-TEST_F(CCTextureUpdateControllerTest, ManyFullMinRemainderManyPartialMaxRemainder) |
-{ |
- appendFullUploadsToUpdateQueue(fullMinRemainderCount); |
- appendPartialUploadsToUpdateQueue(partialMaxRemainderCount); |
- DebugScopedSetImplThread implThread; |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
- |
- EXPECT_EQ(1, m_numBeginUploads); |
- EXPECT_EQ(1, m_numEndUploads); |
- EXPECT_EQ((fullUploadFlushMultipler+1) + partialUploadFlushMultipler, m_numPreviousFlushes); |
- EXPECT_EQ(fullMinRemainderCount + partialMaxRemainderCount, m_numPreviousUploads); |
-} |
- |
-TEST_F(CCTextureUpdateControllerTest, ManyFullMaxRemainderManyPartialMinRemainder) |
-{ |
- appendFullUploadsToUpdateQueue(fullMaxRemainderCount); |
- appendPartialUploadsToUpdateQueue(partialMinRemainderCount); |
- DebugScopedSetImplThread implThread; |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
- |
- EXPECT_EQ(1, m_numBeginUploads); |
- EXPECT_EQ(1, m_numEndUploads); |
- EXPECT_EQ(fullUploadFlushMultipler + (partialUploadFlushMultipler+1), m_numPreviousFlushes); |
- EXPECT_EQ(fullMaxRemainderCount + partialMinRemainderCount, m_numPreviousUploads); |
-} |
- |
- |
-// MULTIPLE UPDATE TESTS |
-// These tests attempt to upload too many textures at once, requiring |
-// multiple calls to update(). |
- |
-int expectedFlushes(int uploads, int flushPeriod) |
-{ |
- return (uploads + flushPeriod - 1) / flushPeriod; |
-} |
- |
-TEST_F(CCTextureUpdateControllerTest, TripleUpdateFinalUpdateFullAndPartial) |
-{ |
- const int kMaxUploadsPerUpdate = 40; |
- const int kFullUploads = 100; |
- const int kPartialUploads = 20; |
- |
- int expectedPreviousFlushes = 0; |
- int expectedPreviousUploads = 0; |
- |
- setMaxUploadCountPerUpdate(kMaxUploadsPerUpdate); |
- appendFullUploadsToUpdateQueue(kFullUploads); |
- appendPartialUploadsToUpdateQueue(kPartialUploads); |
- |
- // First update (40 full) |
- DebugScopedSetImplThread implThread; |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), kMaxUploadsPerUpdate); |
- |
- EXPECT_EQ(1, m_numBeginUploads); |
- EXPECT_EQ(1, m_numEndUploads); |
- |
- expectedPreviousFlushes = expectedFlushes(kMaxUploadsPerUpdate, kFlushPeriodFull); |
- EXPECT_EQ(expectedPreviousFlushes, m_numPreviousFlushes); |
- |
- expectedPreviousUploads = kMaxUploadsPerUpdate; |
- EXPECT_EQ(expectedPreviousUploads, m_numPreviousUploads); |
- |
- // Second update (40 full) |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), kMaxUploadsPerUpdate); |
- |
- EXPECT_EQ(2, m_numBeginUploads); |
- EXPECT_EQ(2, m_numEndUploads); |
- |
- expectedPreviousFlushes = expectedFlushes(kMaxUploadsPerUpdate, kFlushPeriodFull); |
- EXPECT_EQ(expectedPreviousFlushes, m_numPreviousFlushes); |
- |
- expectedPreviousUploads = kMaxUploadsPerUpdate; |
- EXPECT_EQ(expectedPreviousUploads, m_numPreviousUploads); |
- |
- // Third update (20 full, 20 partial) |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), kMaxUploadsPerUpdate); |
- |
- EXPECT_EQ(3, m_numBeginUploads); |
- EXPECT_EQ(3, m_numEndUploads); |
- |
- expectedPreviousFlushes = expectedFlushes(kFullUploads-kMaxUploadsPerUpdate*2, kFlushPeriodFull) + |
- expectedFlushes(kPartialUploads, kFlushPeriodPartial); |
- EXPECT_EQ(expectedPreviousFlushes, m_numPreviousFlushes); |
- |
- expectedPreviousUploads = (kFullUploads-kMaxUploadsPerUpdate*2)+kPartialUploads; |
- EXPECT_EQ(expectedPreviousUploads, m_numPreviousUploads); |
- |
- // Final sanity checks |
- EXPECT_EQ(kFullUploads + kPartialUploads, m_numTotalUploads); |
-} |
- |
-TEST_F(CCTextureUpdateControllerTest, TripleUpdateFinalUpdateAllPartial) |
-{ |
- const int kMaxUploadsPerUpdate = 40; |
- const int kFullUploads = 70; |
- const int kPartialUploads = 30; |
- |
- int expectedPreviousFlushes = 0; |
- int expectedPreviousUploads = 0; |
- |
- setMaxUploadCountPerUpdate(kMaxUploadsPerUpdate); |
- appendFullUploadsToUpdateQueue(kFullUploads); |
- appendPartialUploadsToUpdateQueue(kPartialUploads); |
- |
- // First update (40 full) |
- DebugScopedSetImplThread implThread; |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), kMaxUploadsPerUpdate); |
- |
- EXPECT_EQ(1, m_numBeginUploads); |
- EXPECT_EQ(1, m_numEndUploads); |
- |
- expectedPreviousFlushes = expectedFlushes(kMaxUploadsPerUpdate, kFlushPeriodFull); |
- EXPECT_EQ(expectedPreviousFlushes, m_numPreviousFlushes); |
- |
- expectedPreviousUploads = kMaxUploadsPerUpdate; |
- EXPECT_EQ(expectedPreviousUploads, m_numPreviousUploads); |
- |
- // Second update (30 full, optionally 10 partial) |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), kMaxUploadsPerUpdate); |
- |
- EXPECT_EQ(2, m_numBeginUploads); |
- EXPECT_EQ(2, m_numEndUploads); |
- EXPECT_LE(m_numPreviousUploads, kMaxUploadsPerUpdate); |
- // Be lenient on the exact number of flushes here, as the number of flushes |
- // will depend on whether some partial uploads were performed. |
- // onFlush(), onUpload(), and onEndUpload() will do basic flush checks for us anyway. |
- |
- // Third update (30 partial OR 20 partial if 10 partial uploaded in second update) |
- CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_uploader, m_queue.get(), kMaxUploadsPerUpdate); |
- |
- EXPECT_EQ(3, m_numBeginUploads); |
- EXPECT_EQ(3, m_numEndUploads); |
- EXPECT_LE(m_numPreviousUploads, kMaxUploadsPerUpdate); |
- // Be lenient on the exact number of flushes here as well. |
- |
- // Final sanity checks |
- EXPECT_EQ(kFullUploads + kPartialUploads, m_numTotalUploads); |
+ EXPECT_EQ(fullCount + partialCount, m_numPreviousUploads); |
} |
class FakeCCTextureUpdateControllerClient : public cc::CCTextureUpdateControllerClient { |