OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 | 6 |
7 #include "CCTextureUpdateController.h" | 7 #include "CCTextureUpdateController.h" |
8 | 8 |
9 #include "CCSchedulerTestCommon.h" | 9 #include "CCSchedulerTestCommon.h" |
10 #include "CCSingleThreadProxy.h" // For DebugScopedSetImplThread | 10 #include "CCSingleThreadProxy.h" // For DebugScopedSetImplThread |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 } | 108 } |
109 | 109 |
110 m_numDanglingUploads = 0; | 110 m_numDanglingUploads = 0; |
111 m_numConsecutiveFlushes++; | 111 m_numConsecutiveFlushes++; |
112 m_numTotalFlushes++; | 112 m_numTotalFlushes++; |
113 m_numPreviousFlushes++; | 113 m_numPreviousFlushes++; |
114 } | 114 } |
115 | 115 |
116 void onBeginUploads() | 116 void onBeginUploads() |
117 { | 117 { |
| 118 EXPECT_EQ(0, m_numDanglingUploads) << "Last upload wasn't followed by a
flush."; |
| 119 |
118 m_numPreviousFlushes = 0; | 120 m_numPreviousFlushes = 0; |
119 m_numPreviousUploads = 0; | 121 m_numPreviousUploads = 0; |
120 m_numBeginUploads++; | 122 m_numBeginUploads++; |
121 } | 123 } |
122 | 124 |
123 void onUpload() | 125 void onUpload() |
124 { | 126 { |
125 // Check for too many consecutive uploads | 127 // Check for too many consecutive uploads |
126 if (m_numTotalUploads < m_fullUploadCountExpected) | 128 if (m_numTotalUploads < m_fullUploadCountExpected) |
127 EXPECT_LT(m_numDanglingUploads, kFlushPeriodFull) << "Too many conse
cutive full uploads detected."; | 129 EXPECT_LT(m_numDanglingUploads, kFlushPeriodFull) << "Too many conse
cutive full uploads detected."; |
128 else | 130 else |
129 EXPECT_LT(m_numDanglingUploads, kFlushPeriodPartial) << "Too many co
nsecutive partial uploads detected."; | 131 EXPECT_LT(m_numDanglingUploads, kFlushPeriodPartial) << "Too many co
nsecutive partial uploads detected."; |
130 | 132 |
131 m_numConsecutiveFlushes = 0; | 133 m_numConsecutiveFlushes = 0; |
132 m_numDanglingUploads++; | 134 m_numDanglingUploads++; |
133 m_numTotalUploads++; | 135 m_numTotalUploads++; |
134 m_numPreviousUploads++; | 136 m_numPreviousUploads++; |
135 } | 137 } |
136 | 138 |
137 void onEndUploads() | 139 void onEndUploads() |
138 { | 140 { |
139 EXPECT_EQ(0, m_numDanglingUploads) << "Last upload wasn't followed by a
flush."; | |
140 | |
141 // Note: The m_numTotalUploads != m_fullUploadCountExpected comparison | 141 // Note: The m_numTotalUploads != m_fullUploadCountExpected comparison |
142 // allows for the quota not to be hit in the case where we are trasition
ing | 142 // allows for the quota not to be hit in the case where we are trasition
ing |
143 // from full uploads to partial uploads. | 143 // from full uploads to partial uploads. |
144 if (m_numTotalUploads != m_totalUploadCountExpected && m_numTotalUploads
!= m_fullUploadCountExpected) { | 144 if (m_numTotalUploads != m_totalUploadCountExpected && m_numTotalUploads
!= m_fullUploadCountExpected) { |
145 EXPECT_EQ(m_maxUploadCountPerUpdate, m_numPreviousUploads) | 145 EXPECT_EQ(m_maxUploadCountPerUpdate, m_numPreviousUploads) |
146 << "endUpload() was called when there are textures to upload, bu
t the upload quota hasn't been filled."; | 146 << "endUpload() was called when there are textures to upload, bu
t the upload quota hasn't been filled."; |
147 } | 147 } |
148 | 148 |
149 m_numEndUploads++; | 149 m_numEndUploads++; |
150 } | 150 } |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 { | 258 { |
259 appendFullUploadsToUpdateQueue(1); | 259 appendFullUploadsToUpdateQueue(1); |
260 appendPartialUploadsToUpdateQueue(0); | 260 appendPartialUploadsToUpdateQueue(0); |
261 DebugScopedSetImplThread implThread; | 261 DebugScopedSetImplThread implThread; |
262 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); | 262 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
263 | 263 |
264 EXPECT_EQ(1, m_numBeginUploads); | 264 EXPECT_EQ(1, m_numBeginUploads); |
265 EXPECT_EQ(1, m_numEndUploads); | 265 EXPECT_EQ(1, m_numEndUploads); |
266 EXPECT_EQ(1, m_numPreviousFlushes); | 266 EXPECT_EQ(1, m_numPreviousFlushes); |
267 EXPECT_EQ(1, m_numPreviousUploads); | 267 EXPECT_EQ(1, m_numPreviousUploads); |
| 268 EXPECT_EQ(0, m_numDanglingUploads) << "Last upload wasn't followed by a flus
h."; |
268 } | 269 } |
269 | 270 |
270 TEST_F(CCTextureUpdateControllerTest, OnePartialUpload) | 271 TEST_F(CCTextureUpdateControllerTest, OnePartialUpload) |
271 { | 272 { |
272 appendFullUploadsToUpdateQueue(0); | 273 appendFullUploadsToUpdateQueue(0); |
273 appendPartialUploadsToUpdateQueue(1); | 274 appendPartialUploadsToUpdateQueue(1); |
274 DebugScopedSetImplThread implThread; | 275 DebugScopedSetImplThread implThread; |
275 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); | 276 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
276 | 277 |
277 EXPECT_EQ(1, m_numBeginUploads); | 278 EXPECT_EQ(1, m_numBeginUploads); |
278 EXPECT_EQ(1, m_numEndUploads); | 279 EXPECT_EQ(1, m_numEndUploads); |
279 EXPECT_EQ(1, m_numPreviousFlushes); | 280 EXPECT_EQ(1, m_numPreviousFlushes); |
280 EXPECT_EQ(1, m_numPreviousUploads); | 281 EXPECT_EQ(1, m_numPreviousUploads); |
| 282 EXPECT_EQ(0, m_numDanglingUploads) << "Last upload wasn't followed by a flus
h."; |
281 } | 283 } |
282 | 284 |
283 TEST_F(CCTextureUpdateControllerTest, OneFullOnePartialUpload) | 285 TEST_F(CCTextureUpdateControllerTest, OneFullOnePartialUpload) |
284 { | 286 { |
285 appendFullUploadsToUpdateQueue(1); | 287 appendFullUploadsToUpdateQueue(1); |
286 appendPartialUploadsToUpdateQueue(1); | 288 appendPartialUploadsToUpdateQueue(1); |
287 DebugScopedSetImplThread implThread; | 289 DebugScopedSetImplThread implThread; |
288 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); | 290 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
289 | 291 |
290 // We expect the full uploads to be followed by a flush | 292 // We expect the full uploads to be followed by a flush |
291 // before the partial uploads begin. | 293 // before the partial uploads begin. |
292 EXPECT_EQ(1, m_numBeginUploads); | 294 EXPECT_EQ(1, m_numBeginUploads); |
293 EXPECT_EQ(1, m_numEndUploads); | 295 EXPECT_EQ(1, m_numEndUploads); |
294 EXPECT_EQ(2, m_numPreviousFlushes); | 296 EXPECT_EQ(2, m_numPreviousFlushes); |
295 EXPECT_EQ(2, m_numPreviousUploads); | 297 EXPECT_EQ(2, m_numPreviousUploads); |
| 298 EXPECT_EQ(0, m_numDanglingUploads) << "Last upload wasn't followed by a flus
h."; |
296 } | 299 } |
297 | 300 |
298 | 301 |
299 // NO REMAINDER TESTS | 302 // NO REMAINDER TESTS |
300 // This class of tests upload a number of textures that is a multiple of the flu
sh period. | 303 // This class of tests upload a number of textures that is a multiple of the flu
sh period. |
301 const int fullUploadFlushMultipler = 7; | 304 const int fullUploadFlushMultipler = 7; |
302 const int fullNoRemainderCount = fullUploadFlushMultipler * kFlushPeriodFull; | 305 const int fullNoRemainderCount = fullUploadFlushMultipler * kFlushPeriodFull; |
303 | 306 |
304 const int partialUploadFlushMultipler = 11; | 307 const int partialUploadFlushMultipler = 11; |
305 const int partialNoRemainderCount = partialUploadFlushMultipler * kFlushPeriodPa
rtial; | 308 const int partialNoRemainderCount = partialUploadFlushMultipler * kFlushPeriodPa
rtial; |
306 | 309 |
307 TEST_F(CCTextureUpdateControllerTest, ManyFullUploadsNoRemainder) | 310 TEST_F(CCTextureUpdateControllerTest, ManyFullUploadsNoRemainder) |
308 { | 311 { |
309 appendFullUploadsToUpdateQueue(fullNoRemainderCount); | 312 appendFullUploadsToUpdateQueue(fullNoRemainderCount); |
310 appendPartialUploadsToUpdateQueue(0); | 313 appendPartialUploadsToUpdateQueue(0); |
311 DebugScopedSetImplThread implThread; | 314 DebugScopedSetImplThread implThread; |
312 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); | 315 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
313 | 316 |
314 EXPECT_EQ(1, m_numBeginUploads); | 317 EXPECT_EQ(1, m_numBeginUploads); |
315 EXPECT_EQ(1, m_numEndUploads); | 318 EXPECT_EQ(1, m_numEndUploads); |
316 EXPECT_EQ(fullUploadFlushMultipler, m_numPreviousFlushes); | 319 EXPECT_EQ(fullUploadFlushMultipler, m_numPreviousFlushes); |
317 EXPECT_EQ(fullNoRemainderCount, m_numPreviousUploads); | 320 EXPECT_EQ(fullNoRemainderCount, m_numPreviousUploads); |
| 321 EXPECT_EQ(0, m_numDanglingUploads) << "Last upload wasn't followed by a flus
h."; |
318 } | 322 } |
319 | 323 |
320 TEST_F(CCTextureUpdateControllerTest, ManyPartialUploadsNoRemainder) | 324 TEST_F(CCTextureUpdateControllerTest, ManyPartialUploadsNoRemainder) |
321 { | 325 { |
322 appendFullUploadsToUpdateQueue(0); | 326 appendFullUploadsToUpdateQueue(0); |
323 appendPartialUploadsToUpdateQueue(partialNoRemainderCount); | 327 appendPartialUploadsToUpdateQueue(partialNoRemainderCount); |
324 DebugScopedSetImplThread implThread; | 328 DebugScopedSetImplThread implThread; |
325 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); | 329 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
326 | 330 |
327 EXPECT_EQ(1, m_numBeginUploads); | 331 EXPECT_EQ(1, m_numBeginUploads); |
328 EXPECT_EQ(1, m_numEndUploads); | 332 EXPECT_EQ(1, m_numEndUploads); |
329 EXPECT_EQ(partialUploadFlushMultipler, m_numPreviousFlushes); | 333 EXPECT_EQ(partialUploadFlushMultipler, m_numPreviousFlushes); |
330 EXPECT_EQ(partialNoRemainderCount, m_numPreviousUploads); | 334 EXPECT_EQ(partialNoRemainderCount, m_numPreviousUploads); |
| 335 EXPECT_EQ(0, m_numDanglingUploads) << "Last upload wasn't followed by a flus
h."; |
331 } | 336 } |
332 | 337 |
333 TEST_F(CCTextureUpdateControllerTest, ManyFullManyPartialUploadsNoRemainder) | 338 TEST_F(CCTextureUpdateControllerTest, ManyFullManyPartialUploadsNoRemainder) |
334 { | 339 { |
335 appendFullUploadsToUpdateQueue(fullNoRemainderCount); | 340 appendFullUploadsToUpdateQueue(fullNoRemainderCount); |
336 appendPartialUploadsToUpdateQueue(partialNoRemainderCount); | 341 appendPartialUploadsToUpdateQueue(partialNoRemainderCount); |
337 DebugScopedSetImplThread implThread; | 342 DebugScopedSetImplThread implThread; |
338 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); | 343 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
339 | 344 |
340 EXPECT_EQ(1, m_numBeginUploads); | 345 EXPECT_EQ(1, m_numBeginUploads); |
341 EXPECT_EQ(1, m_numEndUploads); | 346 EXPECT_EQ(1, m_numEndUploads); |
342 EXPECT_EQ(fullUploadFlushMultipler + partialUploadFlushMultipler, m_numPrevi
ousFlushes); | 347 EXPECT_EQ(fullUploadFlushMultipler + partialUploadFlushMultipler, m_numPrevi
ousFlushes); |
343 EXPECT_EQ(fullNoRemainderCount + partialNoRemainderCount, m_numPreviousUploa
ds); | 348 EXPECT_EQ(fullNoRemainderCount + partialNoRemainderCount, m_numPreviousUploa
ds); |
| 349 EXPECT_EQ(0, m_numDanglingUploads) << "Last upload wasn't followed by a flus
h."; |
344 } | 350 } |
345 | 351 |
346 | 352 |
347 // MIN/MAX REMAINDER TESTS | 353 // MIN/MAX REMAINDER TESTS |
348 // This class of tests mix and match uploading 1 more and 1 less texture | 354 // This class of tests mix and match uploading 1 more and 1 less texture |
349 // than a multiple of the flush period. | 355 // than a multiple of the flush period. |
350 | 356 |
351 const int fullMinRemainderCount = fullNoRemainderCount + 1; | 357 const int fullMinRemainderCount = fullNoRemainderCount + 1; |
352 const int fullMaxRemainderCount = fullNoRemainderCount - 1; | 358 const int fullMaxRemainderCount = fullNoRemainderCount - 1; |
353 const int partialMinRemainderCount = partialNoRemainderCount + 1; | 359 const int partialMinRemainderCount = partialNoRemainderCount + 1; |
354 const int partialMaxRemainderCount = partialNoRemainderCount - 1; | 360 const int partialMaxRemainderCount = partialNoRemainderCount - 1; |
355 | 361 |
356 TEST_F(CCTextureUpdateControllerTest, ManyFullAndPartialMinRemainder) | 362 TEST_F(CCTextureUpdateControllerTest, ManyFullAndPartialMinRemainder) |
357 { | 363 { |
358 appendFullUploadsToUpdateQueue(fullMinRemainderCount); | 364 appendFullUploadsToUpdateQueue(fullMinRemainderCount); |
359 appendPartialUploadsToUpdateQueue(partialMinRemainderCount); | 365 appendPartialUploadsToUpdateQueue(partialMinRemainderCount); |
360 DebugScopedSetImplThread implThread; | 366 DebugScopedSetImplThread implThread; |
361 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); | 367 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
362 | 368 |
363 EXPECT_EQ(1, m_numBeginUploads); | 369 EXPECT_EQ(1, m_numBeginUploads); |
364 EXPECT_EQ(1, m_numEndUploads); | 370 EXPECT_EQ(1, m_numEndUploads); |
365 EXPECT_EQ(fullUploadFlushMultipler + partialUploadFlushMultipler + 2, m_numP
reviousFlushes); | 371 EXPECT_EQ(fullUploadFlushMultipler + partialUploadFlushMultipler + 2, m_numP
reviousFlushes); |
366 EXPECT_EQ(fullMinRemainderCount + partialMinRemainderCount, m_numPreviousUpl
oads); | 372 EXPECT_EQ(fullMinRemainderCount + partialMinRemainderCount, m_numPreviousUpl
oads); |
| 373 EXPECT_EQ(0, m_numDanglingUploads) << "Last upload wasn't followed by a flus
h."; |
367 } | 374 } |
368 | 375 |
369 TEST_F(CCTextureUpdateControllerTest, ManyFullAndPartialUploadsMaxRemainder) | 376 TEST_F(CCTextureUpdateControllerTest, ManyFullAndPartialUploadsMaxRemainder) |
370 { | 377 { |
371 appendFullUploadsToUpdateQueue(fullMaxRemainderCount); | 378 appendFullUploadsToUpdateQueue(fullMaxRemainderCount); |
372 appendPartialUploadsToUpdateQueue(partialMaxRemainderCount); | 379 appendPartialUploadsToUpdateQueue(partialMaxRemainderCount); |
373 DebugScopedSetImplThread implThread; | 380 DebugScopedSetImplThread implThread; |
374 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); | 381 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
375 | 382 |
376 EXPECT_EQ(1, m_numBeginUploads); | 383 EXPECT_EQ(1, m_numBeginUploads); |
377 EXPECT_EQ(1, m_numEndUploads); | 384 EXPECT_EQ(1, m_numEndUploads); |
378 EXPECT_EQ(fullUploadFlushMultipler + partialUploadFlushMultipler, m_numPrevi
ousFlushes); | 385 EXPECT_EQ(fullUploadFlushMultipler + partialUploadFlushMultipler, m_numPrevi
ousFlushes); |
379 EXPECT_EQ(fullMaxRemainderCount + partialMaxRemainderCount, m_numPreviousUpl
oads); | 386 EXPECT_EQ(fullMaxRemainderCount + partialMaxRemainderCount, m_numPreviousUpl
oads); |
| 387 EXPECT_EQ(0, m_numDanglingUploads) << "Last upload wasn't followed by a flus
h."; |
380 } | 388 } |
381 | 389 |
382 TEST_F(CCTextureUpdateControllerTest, ManyFullMinRemainderManyPartialMaxRemainde
r) | 390 TEST_F(CCTextureUpdateControllerTest, ManyFullMinRemainderManyPartialMaxRemainde
r) |
383 { | 391 { |
384 appendFullUploadsToUpdateQueue(fullMinRemainderCount); | 392 appendFullUploadsToUpdateQueue(fullMinRemainderCount); |
385 appendPartialUploadsToUpdateQueue(partialMaxRemainderCount); | 393 appendPartialUploadsToUpdateQueue(partialMaxRemainderCount); |
386 DebugScopedSetImplThread implThread; | 394 DebugScopedSetImplThread implThread; |
387 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); | 395 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
388 | 396 |
389 EXPECT_EQ(1, m_numBeginUploads); | 397 EXPECT_EQ(1, m_numBeginUploads); |
390 EXPECT_EQ(1, m_numEndUploads); | 398 EXPECT_EQ(1, m_numEndUploads); |
391 EXPECT_EQ((fullUploadFlushMultipler+1) + partialUploadFlushMultipler, m_numP
reviousFlushes); | 399 EXPECT_EQ((fullUploadFlushMultipler+1) + partialUploadFlushMultipler, m_numP
reviousFlushes); |
392 EXPECT_EQ(fullMinRemainderCount + partialMaxRemainderCount, m_numPreviousUpl
oads); | 400 EXPECT_EQ(fullMinRemainderCount + partialMaxRemainderCount, m_numPreviousUpl
oads); |
| 401 EXPECT_EQ(0, m_numDanglingUploads) << "Last upload wasn't followed by a flus
h."; |
393 } | 402 } |
394 | 403 |
395 TEST_F(CCTextureUpdateControllerTest, ManyFullMaxRemainderManyPartialMinRemainde
r) | 404 TEST_F(CCTextureUpdateControllerTest, ManyFullMaxRemainderManyPartialMinRemainde
r) |
396 { | 405 { |
397 appendFullUploadsToUpdateQueue(fullMaxRemainderCount); | 406 appendFullUploadsToUpdateQueue(fullMaxRemainderCount); |
398 appendPartialUploadsToUpdateQueue(partialMinRemainderCount); | 407 appendPartialUploadsToUpdateQueue(partialMinRemainderCount); |
399 DebugScopedSetImplThread implThread; | 408 DebugScopedSetImplThread implThread; |
400 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); | 409 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), m_totalUploadCountExpected); |
401 | 410 |
402 EXPECT_EQ(1, m_numBeginUploads); | 411 EXPECT_EQ(1, m_numBeginUploads); |
403 EXPECT_EQ(1, m_numEndUploads); | 412 EXPECT_EQ(1, m_numEndUploads); |
404 EXPECT_EQ(fullUploadFlushMultipler + (partialUploadFlushMultipler+1), m_numP
reviousFlushes); | 413 EXPECT_EQ(fullUploadFlushMultipler + (partialUploadFlushMultipler+1), m_numP
reviousFlushes); |
405 EXPECT_EQ(fullMaxRemainderCount + partialMinRemainderCount, m_numPreviousUpl
oads); | 414 EXPECT_EQ(fullMaxRemainderCount + partialMinRemainderCount, m_numPreviousUpl
oads); |
| 415 EXPECT_EQ(0, m_numDanglingUploads) << "Last upload wasn't followed by a flus
h."; |
406 } | 416 } |
407 | 417 |
408 | 418 |
409 // MULTIPLE UPDATE TESTS | 419 // MULTIPLE UPDATE TESTS |
410 // These tests attempt to upload too many textures at once, requiring | 420 // These tests attempt to upload too many textures at once, requiring |
411 // multiple calls to update(). | 421 // multiple calls to update(). |
412 | 422 |
413 int expectedFlushes(int uploads, int flushPeriod) | 423 int expectedFlushes(int uploads, int flushPeriod) |
414 { | 424 { |
415 return (uploads + flushPeriod - 1) / flushPeriod; | 425 return (uploads + flushPeriod - 1) / flushPeriod; |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 EXPECT_EQ(3, m_numEndUploads); | 470 EXPECT_EQ(3, m_numEndUploads); |
461 | 471 |
462 expectedPreviousFlushes = expectedFlushes(kFullUploads-kMaxUploadsPerUpdate*
2, kFlushPeriodFull) + | 472 expectedPreviousFlushes = expectedFlushes(kFullUploads-kMaxUploadsPerUpdate*
2, kFlushPeriodFull) + |
463 expectedFlushes(kPartialUploads, kFlushPeriodParti
al); | 473 expectedFlushes(kPartialUploads, kFlushPeriodParti
al); |
464 EXPECT_EQ(expectedPreviousFlushes, m_numPreviousFlushes); | 474 EXPECT_EQ(expectedPreviousFlushes, m_numPreviousFlushes); |
465 | 475 |
466 expectedPreviousUploads = (kFullUploads-kMaxUploadsPerUpdate*2)+kPartialUplo
ads; | 476 expectedPreviousUploads = (kFullUploads-kMaxUploadsPerUpdate*2)+kPartialUplo
ads; |
467 EXPECT_EQ(expectedPreviousUploads, m_numPreviousUploads); | 477 EXPECT_EQ(expectedPreviousUploads, m_numPreviousUploads); |
468 | 478 |
469 // Final sanity checks | 479 // Final sanity checks |
| 480 EXPECT_EQ(0, m_numDanglingUploads) << "Last upload wasn't followed by a flus
h."; |
470 EXPECT_EQ(kFullUploads + kPartialUploads, m_numTotalUploads); | 481 EXPECT_EQ(kFullUploads + kPartialUploads, m_numTotalUploads); |
471 } | 482 } |
472 | 483 |
473 TEST_F(CCTextureUpdateControllerTest, TripleUpdateFinalUpdateAllPartial) | 484 TEST_F(CCTextureUpdateControllerTest, TripleUpdateFinalUpdateAllPartial) |
474 { | 485 { |
475 const int kMaxUploadsPerUpdate = 40; | 486 const int kMaxUploadsPerUpdate = 40; |
476 const int kFullUploads = 70; | 487 const int kFullUploads = 70; |
477 const int kPartialUploads = 30; | 488 const int kPartialUploads = 30; |
478 | 489 |
479 int expectedPreviousFlushes = 0; | 490 int expectedPreviousFlushes = 0; |
(...skipping 28 matching lines...) Expand all Loading... |
508 | 519 |
509 // Third update (30 partial OR 20 partial if 10 partial uploaded in second u
pdate) | 520 // Third update (30 partial OR 20 partial if 10 partial uploaded in second u
pdate) |
510 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), kMaxUploadsPerUpdate); | 521 CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copie
r, &m_uploader, m_queue.get(), kMaxUploadsPerUpdate); |
511 | 522 |
512 EXPECT_EQ(3, m_numBeginUploads); | 523 EXPECT_EQ(3, m_numBeginUploads); |
513 EXPECT_EQ(3, m_numEndUploads); | 524 EXPECT_EQ(3, m_numEndUploads); |
514 EXPECT_LE(m_numPreviousUploads, kMaxUploadsPerUpdate); | 525 EXPECT_LE(m_numPreviousUploads, kMaxUploadsPerUpdate); |
515 // Be lenient on the exact number of flushes here as well. | 526 // Be lenient on the exact number of flushes here as well. |
516 | 527 |
517 // Final sanity checks | 528 // Final sanity checks |
| 529 EXPECT_EQ(0, m_numDanglingUploads) << "Last upload wasn't followed by a flus
h."; |
518 EXPECT_EQ(kFullUploads + kPartialUploads, m_numTotalUploads); | 530 EXPECT_EQ(kFullUploads + kPartialUploads, m_numTotalUploads); |
519 } | 531 } |
520 | 532 |
521 class FakeCCTextureUpdateControllerClient : public cc::CCTextureUpdateController
Client { | 533 class FakeCCTextureUpdateControllerClient : public cc::CCTextureUpdateController
Client { |
522 public: | 534 public: |
523 FakeCCTextureUpdateControllerClient() { reset(); } | 535 FakeCCTextureUpdateControllerClient() { reset(); } |
524 void reset() { m_readyToFinalizeCalled = false; } | 536 void reset() { m_readyToFinalizeCalled = false; } |
525 bool readyToFinalizeCalled() const { return m_readyToFinalizeCalled; } | 537 bool readyToFinalizeCalled() const { return m_readyToFinalizeCalled; } |
526 | 538 |
527 virtual void readyToFinalizeTextureUpdates() OVERRIDE { m_readyToFinalizeCal
led = true; } | 539 virtual void readyToFinalizeTextureUpdates() OVERRIDE { m_readyToFinalizeCal
led = true; } |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
676 } | 688 } |
677 | 689 |
678 EXPECT_FALSE(thread.hasPendingTask()); | 690 EXPECT_FALSE(thread.hasPendingTask()); |
679 EXPECT_TRUE(client.readyToFinalizeCalled()); | 691 EXPECT_TRUE(client.readyToFinalizeCalled()); |
680 EXPECT_EQ(2, m_numBeginUploads); | 692 EXPECT_EQ(2, m_numBeginUploads); |
681 EXPECT_EQ(2, m_numEndUploads); | 693 EXPECT_EQ(2, m_numEndUploads); |
682 EXPECT_EQ(2, m_numTotalUploads); | 694 EXPECT_EQ(2, m_numTotalUploads); |
683 } | 695 } |
684 | 696 |
685 } // namespace | 697 } // namespace |
OLD | NEW |