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

Side by Side Diff: cc/quads/list_container_unittest.cc

Issue 698053002: Choose Largest DrawQuad Type No Longer Depended on Compiler Flag (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: no const needed Created 6 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « cc/quads/list_container.h ('k') | cc/quads/render_pass.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "cc/quads/list_container.h" 5 #include "cc/quads/list_container.h"
6 6
7 #include <vector> 7 #include <vector>
8 #include "cc/quads/draw_quad.h" 8 #include "cc/quads/draw_quad.h"
9 #include "cc/quads/largest_draw_quad.h" 9 #include "cc/quads/largest_draw_quad.h"
10 #include "cc/quads/render_pass_draw_quad.h" 10 #include "cc/quads/render_pass_draw_quad.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 class MockDrawQuad : public DrawQuad { 57 class MockDrawQuad : public DrawQuad {
58 public: 58 public:
59 virtual ~MockDrawQuad() { Destruct(); } 59 virtual ~MockDrawQuad() { Destruct(); }
60 virtual void IterateResources( 60 virtual void IterateResources(
61 const ResourceIteratorCallback& callback) override {} 61 const ResourceIteratorCallback& callback) override {}
62 virtual void ExtendValue(base::debug::TracedValue* value) const override {} 62 virtual void ExtendValue(base::debug::TracedValue* value) const override {}
63 MOCK_METHOD0(Destruct, void()); 63 MOCK_METHOD0(Destruct, void());
64 }; 64 };
65 65
66 TEST(ListContainerTest, ConstructorCalledInAllocateAndConstruct) { 66 TEST(ListContainerTest, ConstructorCalledInAllocateAndConstruct) {
67 ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad)); 67 ListContainer<DrawQuad> list(LargestDrawQuadSize());
68 68
69 size_t size = 2; 69 size_t size = 2;
70 SimpleDrawQuadConstructMagicNumberOne* dq_1 = 70 SimpleDrawQuadConstructMagicNumberOne* dq_1 =
71 list.AllocateAndConstruct<SimpleDrawQuadConstructMagicNumberOne>(); 71 list.AllocateAndConstruct<SimpleDrawQuadConstructMagicNumberOne>();
72 SimpleDrawQuadConstructMagicNumberTwo* dq_2 = 72 SimpleDrawQuadConstructMagicNumberTwo* dq_2 =
73 list.AllocateAndConstruct<SimpleDrawQuadConstructMagicNumberTwo>(); 73 list.AllocateAndConstruct<SimpleDrawQuadConstructMagicNumberTwo>();
74 74
75 EXPECT_EQ(size, list.size()); 75 EXPECT_EQ(size, list.size());
76 EXPECT_EQ(dq_1, list.front()); 76 EXPECT_EQ(dq_1, list.front());
77 EXPECT_EQ(dq_2, list.back()); 77 EXPECT_EQ(dq_2, list.back());
78 78
79 EXPECT_EQ(kMagicNumberToUseForDrawQuadOne, dq_1->get_value()); 79 EXPECT_EQ(kMagicNumberToUseForDrawQuadOne, dq_1->get_value());
80 EXPECT_EQ(kMagicNumberToUseForDrawQuadTwo, dq_2->get_value()); 80 EXPECT_EQ(kMagicNumberToUseForDrawQuadTwo, dq_2->get_value());
81 } 81 }
82 82
83 TEST(ListContainerTest, DestructorCalled) { 83 TEST(ListContainerTest, DestructorCalled) {
84 ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad)); 84 ListContainer<DrawQuad> list(LargestDrawQuadSize());
85 85
86 size_t size = 1; 86 size_t size = 1;
87 MockDrawQuad* dq_1 = list.AllocateAndConstruct<MockDrawQuad>(); 87 MockDrawQuad* dq_1 = list.AllocateAndConstruct<MockDrawQuad>();
88 88
89 EXPECT_CALL(*dq_1, Destruct()); 89 EXPECT_CALL(*dq_1, Destruct());
90 EXPECT_EQ(size, list.size()); 90 EXPECT_EQ(size, list.size());
91 EXPECT_EQ(dq_1, list.front()); 91 EXPECT_EQ(dq_1, list.front());
92 } 92 }
93 93
94 TEST(ListContainerTest, DestructorCalledOnceWhenClear) { 94 TEST(ListContainerTest, DestructorCalledOnceWhenClear) {
95 ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad)); 95 ListContainer<DrawQuad> list(LargestDrawQuadSize());
96 size_t size = 1; 96 size_t size = 1;
97 MockDrawQuad* dq_1 = list.AllocateAndConstruct<MockDrawQuad>(); 97 MockDrawQuad* dq_1 = list.AllocateAndConstruct<MockDrawQuad>();
98 98
99 EXPECT_EQ(size, list.size()); 99 EXPECT_EQ(size, list.size());
100 EXPECT_EQ(dq_1, list.front()); 100 EXPECT_EQ(dq_1, list.front());
101 101
102 // Make sure destructor is called once during clear, and won't be called 102 // Make sure destructor is called once during clear, and won't be called
103 // again. 103 // again.
104 testing::MockFunction<void()> separator; 104 testing::MockFunction<void()> separator;
105 { 105 {
106 testing::InSequence s; 106 testing::InSequence s;
107 EXPECT_CALL(*dq_1, Destruct()); 107 EXPECT_CALL(*dq_1, Destruct());
108 EXPECT_CALL(separator, Call()); 108 EXPECT_CALL(separator, Call());
109 EXPECT_CALL(*dq_1, Destruct()).Times(0); 109 EXPECT_CALL(*dq_1, Destruct()).Times(0);
110 } 110 }
111 111
112 list.clear(); 112 list.clear();
113 separator.Call(); 113 separator.Call();
114 } 114 }
115 115
116 TEST(ListContainerTest, DestructorCalledOnceWhenErase) { 116 TEST(ListContainerTest, DestructorCalledOnceWhenErase) {
117 ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad)); 117 ListContainer<DrawQuad> list(LargestDrawQuadSize());
118 size_t size = 1; 118 size_t size = 1;
119 MockDrawQuad* dq_1 = list.AllocateAndConstruct<MockDrawQuad>(); 119 MockDrawQuad* dq_1 = list.AllocateAndConstruct<MockDrawQuad>();
120 120
121 EXPECT_EQ(size, list.size()); 121 EXPECT_EQ(size, list.size());
122 EXPECT_EQ(dq_1, list.front()); 122 EXPECT_EQ(dq_1, list.front());
123 123
124 // Make sure destructor is called once during clear, and won't be called 124 // Make sure destructor is called once during clear, and won't be called
125 // again. 125 // again.
126 testing::MockFunction<void()> separator; 126 testing::MockFunction<void()> separator;
127 { 127 {
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
428 sqs_list.rbegin(); 428 sqs_list.rbegin();
429 sqs_iter != sqs_list.rend(); 429 sqs_iter != sqs_list.rend();
430 ++sqs_iter) { 430 ++sqs_iter) {
431 EXPECT_EQ(*sqs_iter, *iter); 431 EXPECT_EQ(*sqs_iter, *iter);
432 ++iter; 432 ++iter;
433 } 433 }
434 } 434 }
435 } 435 }
436 436
437 TEST(ListContainerTest, SimpleDeletion) { 437 TEST(ListContainerTest, SimpleDeletion) {
438 ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad)); 438 ListContainer<DrawQuad> list(LargestDrawQuadSize());
439 std::vector<SimpleDrawQuad*> sdq_list; 439 std::vector<SimpleDrawQuad*> sdq_list;
440 size_t size = 10; 440 size_t size = 10;
441 for (size_t i = 0; i < size; ++i) { 441 for (size_t i = 0; i < size; ++i) {
442 sdq_list.push_back(list.AllocateAndConstruct<SimpleDrawQuad>()); 442 sdq_list.push_back(list.AllocateAndConstruct<SimpleDrawQuad>());
443 sdq_list.back()->set_value(i); 443 sdq_list.back()->set_value(i);
444 } 444 }
445 EXPECT_EQ(size, list.size()); 445 EXPECT_EQ(size, list.size());
446 446
447 list.EraseAndInvalidateAllPointers(list.begin()); 447 list.EraseAndInvalidateAllPointers(list.begin());
448 --size; 448 --size;
449 EXPECT_EQ(size, list.size()); 449 EXPECT_EQ(size, list.size());
450 int i = 1; 450 int i = 1;
451 for (ListContainer<DrawQuad>::Iterator iter = list.begin(); 451 for (ListContainer<DrawQuad>::Iterator iter = list.begin();
452 iter != list.end(); 452 iter != list.end();
453 ++iter) { 453 ++iter) {
454 EXPECT_EQ(i, static_cast<SimpleDrawQuad*>(*iter)->get_value()); 454 EXPECT_EQ(i, static_cast<SimpleDrawQuad*>(*iter)->get_value());
455 ++i; 455 ++i;
456 } 456 }
457 } 457 }
458 458
459 TEST(ListContainerTest, SimpleIterationAndManipulation) { 459 TEST(ListContainerTest, SimpleIterationAndManipulation) {
460 ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad)); 460 ListContainer<DrawQuad> list(LargestDrawQuadSize());
461 std::vector<SimpleDrawQuad*> sdq_list; 461 std::vector<SimpleDrawQuad*> sdq_list;
462 size_t size = 10; 462 size_t size = 10;
463 for (size_t i = 0; i < size; ++i) { 463 for (size_t i = 0; i < size; ++i) {
464 SimpleDrawQuad* simple_dq = list.AllocateAndConstruct<SimpleDrawQuad>(); 464 SimpleDrawQuad* simple_dq = list.AllocateAndConstruct<SimpleDrawQuad>();
465 sdq_list.push_back(simple_dq); 465 sdq_list.push_back(simple_dq);
466 } 466 }
467 EXPECT_EQ(size, list.size()); 467 EXPECT_EQ(size, list.size());
468 468
469 ListContainer<DrawQuad>::Iterator iter = list.begin(); 469 ListContainer<DrawQuad>::Iterator iter = list.begin();
470 for (int i = 0; i < 10; ++i) { 470 for (int i = 0; i < 10; ++i) {
471 static_cast<SimpleDrawQuad*>(*iter)->set_value(i); 471 static_cast<SimpleDrawQuad*>(*iter)->set_value(i);
472 ++iter; 472 ++iter;
473 } 473 }
474 474
475 int i = 0; 475 int i = 0;
476 for (std::vector<SimpleDrawQuad*>::const_iterator sdq_iter = sdq_list.begin(); 476 for (std::vector<SimpleDrawQuad*>::const_iterator sdq_iter = sdq_list.begin();
477 sdq_iter < sdq_list.end(); 477 sdq_iter < sdq_list.end();
478 ++sdq_iter) { 478 ++sdq_iter) {
479 EXPECT_EQ(i, (*sdq_iter)->get_value()); 479 EXPECT_EQ(i, (*sdq_iter)->get_value());
480 ++i; 480 ++i;
481 } 481 }
482 } 482 }
483 483
484 TEST(ListContainerTest, SimpleManipulationWithIndexSimpleDrawQuad) { 484 TEST(ListContainerTest, SimpleManipulationWithIndexSimpleDrawQuad) {
485 ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad)); 485 ListContainer<DrawQuad> list(LargestDrawQuadSize());
486 std::vector<SimpleDrawQuad*> dq_list; 486 std::vector<SimpleDrawQuad*> dq_list;
487 size_t size = 10; 487 size_t size = 10;
488 for (size_t i = 0; i < size; ++i) { 488 for (size_t i = 0; i < size; ++i) {
489 dq_list.push_back(list.AllocateAndConstruct<SimpleDrawQuad>()); 489 dq_list.push_back(list.AllocateAndConstruct<SimpleDrawQuad>());
490 } 490 }
491 EXPECT_EQ(size, list.size()); 491 EXPECT_EQ(size, list.size());
492 492
493 for (size_t i = 0; i < size; ++i) { 493 for (size_t i = 0; i < size; ++i) {
494 static_cast<SimpleDrawQuad*>(list.ElementAt(i))->set_value(i); 494 static_cast<SimpleDrawQuad*>(list.ElementAt(i))->set_value(i);
495 } 495 }
496 496
497 int i = 0; 497 int i = 0;
498 for (std::vector<SimpleDrawQuad*>::const_iterator dq_iter = dq_list.begin(); 498 for (std::vector<SimpleDrawQuad*>::const_iterator dq_iter = dq_list.begin();
499 dq_iter != dq_list.end(); 499 dq_iter != dq_list.end();
500 ++dq_iter, ++i) { 500 ++dq_iter, ++i) {
501 EXPECT_EQ(i, (*dq_iter)->get_value()); 501 EXPECT_EQ(i, (*dq_iter)->get_value());
502 } 502 }
503 } 503 }
504 504
505 TEST(ListContainerTest, 505 TEST(ListContainerTest,
506 SimpleManipulationWithIndexMoreThanOneAllocationSimpleDrawQuad) { 506 SimpleManipulationWithIndexMoreThanOneAllocationSimpleDrawQuad) {
507 ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad), 2); 507 ListContainer<DrawQuad> list(LargestDrawQuadSize(), 2);
508 std::vector<SimpleDrawQuad*> dq_list; 508 std::vector<SimpleDrawQuad*> dq_list;
509 size_t size = 10; 509 size_t size = 10;
510 for (size_t i = 0; i < size; ++i) { 510 for (size_t i = 0; i < size; ++i) {
511 dq_list.push_back(list.AllocateAndConstruct<SimpleDrawQuad>()); 511 dq_list.push_back(list.AllocateAndConstruct<SimpleDrawQuad>());
512 } 512 }
513 EXPECT_EQ(size, list.size()); 513 EXPECT_EQ(size, list.size());
514 514
515 for (size_t i = 0; i < size; ++i) { 515 for (size_t i = 0; i < size; ++i) {
516 static_cast<SimpleDrawQuad*>(list.ElementAt(i))->set_value(i); 516 static_cast<SimpleDrawQuad*>(list.ElementAt(i))->set_value(i);
517 } 517 }
(...skipping 28 matching lines...) Expand all
546 for (ListContainer<SharedQuadState>::ReverseIterator iter = list.rbegin(); 546 for (ListContainer<SharedQuadState>::ReverseIterator iter = list.rbegin();
547 iter != list.rend(); 547 iter != list.rend();
548 ++iter) { 548 ++iter) {
549 EXPECT_EQ(i, iter.index()); 549 EXPECT_EQ(i, iter.index());
550 ++i; 550 ++i;
551 } 551 }
552 } 552 }
553 553
554 } // namespace 554 } // namespace
555 } // namespace cc 555 } // namespace cc
OLDNEW
« no previous file with comments | « cc/quads/list_container.h ('k') | cc/quads/render_pass.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698