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

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

Issue 448303002: Use custom ListContainer to allocate DrawQuads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@perftest
Patch Set: rename at() to ElementAt() Created 6 years, 3 months 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.cc ('k') | cc/quads/render_pass.h » ('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 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 testing::InSequence s; 129 testing::InSequence s;
130 EXPECT_CALL(*dq_1, Destruct()); 130 EXPECT_CALL(*dq_1, Destruct());
131 EXPECT_CALL(separator, Call()); 131 EXPECT_CALL(separator, Call());
132 EXPECT_CALL(*dq_1, Destruct()).Times(0); 132 EXPECT_CALL(*dq_1, Destruct()).Times(0);
133 } 133 }
134 134
135 list.EraseAndInvalidateAllPointers(list.begin()); 135 list.EraseAndInvalidateAllPointers(list.begin());
136 separator.Call(); 136 separator.Call();
137 } 137 }
138 138
139 TEST(ListContainerTest, SimpleIndexAccessSharedQuadState) {
140 ListContainer<SharedQuadState> list;
141
142 size_t size = 3;
143 SharedQuadState* sqs_1 = list.AllocateAndConstruct<SharedQuadState>();
144 SharedQuadState* sqs_2 = list.AllocateAndConstruct<SharedQuadState>();
145 SharedQuadState* sqs_3 = list.AllocateAndConstruct<SharedQuadState>();
146
147 EXPECT_EQ(size, list.size());
148 EXPECT_EQ(sqs_1, list.front());
149 EXPECT_EQ(sqs_3, list.back());
150 EXPECT_EQ(list.front(), list.ElementAt(0));
151 EXPECT_EQ(sqs_2, list.ElementAt(1));
152 EXPECT_EQ(list.back(), list.ElementAt(2));
153 }
154
139 TEST(ListContainerTest, SimpleInsertionSharedQuadState) { 155 TEST(ListContainerTest, SimpleInsertionSharedQuadState) {
140 ListContainer<SharedQuadState> list; 156 ListContainer<SharedQuadState> list;
141 157
142 size_t size = 3; 158 size_t size = 3;
143 SharedQuadState* sqs_1 = list.AllocateAndConstruct<SharedQuadState>(); 159 SharedQuadState* sqs_1 = list.AllocateAndConstruct<SharedQuadState>();
144 list.AllocateAndConstruct<SharedQuadState>(); 160 list.AllocateAndConstruct<SharedQuadState>();
145 SharedQuadState* sqs_3 = list.AllocateAndConstruct<SharedQuadState>(); 161 SharedQuadState* sqs_3 = list.AllocateAndConstruct<SharedQuadState>();
146 162
147 EXPECT_EQ(size, list.size()); 163 EXPECT_EQ(size, list.size());
148 EXPECT_EQ(sqs_1, list.front()); 164 EXPECT_EQ(sqs_1, list.front());
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 475
460 int i = 0; 476 int i = 0;
461 for (std::vector<SimpleDrawQuad*>::const_iterator sdq_iter = sdq_list.begin(); 477 for (std::vector<SimpleDrawQuad*>::const_iterator sdq_iter = sdq_list.begin();
462 sdq_iter < sdq_list.end(); 478 sdq_iter < sdq_list.end();
463 ++sdq_iter) { 479 ++sdq_iter) {
464 EXPECT_EQ(i, (*sdq_iter)->get_value()); 480 EXPECT_EQ(i, (*sdq_iter)->get_value());
465 ++i; 481 ++i;
466 } 482 }
467 } 483 }
468 484
485 TEST(ListContainerTest, SimpleIterationWithIndexSimpleDrawQuad) {
danakj 2014/09/24 23:55:57 This test seems to be testing iterators, which are
486 ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad));
487 std::vector<SimpleDrawQuad*> dq_list;
488 size_t size = 10;
489 for (size_t i = 0; i < size; ++i) {
490 dq_list.push_back(list.AllocateAndConstruct<SimpleDrawQuad>());
491 }
492 EXPECT_EQ(size, list.size());
493
494 for (size_t i = 0; i < size; ++i) {
495 static_cast<SimpleDrawQuad*>(list.ElementAt(i))->set_value(i);
496 }
497
498 size_t num_iters_in_list = 0;
499 {
500 int i = 0;
501 std::vector<SimpleDrawQuad*>::const_iterator dq_iter = dq_list.begin();
502 for (ListContainer<DrawQuad>::Iterator iter = list.begin();
503 iter != list.end();
504 ++iter) {
505 EXPECT_EQ(*dq_iter, &*iter);
506 EXPECT_EQ(i, static_cast<SimpleDrawQuad&>(*iter).get_value());
507 ++i;
508 ++num_iters_in_list;
509 ++dq_iter;
510 }
511 }
512
513 size_t num_iters_in_vector = 0;
514 {
515 int i = 0;
516 ListContainer<DrawQuad>::Iterator iter = list.begin();
517 for (std::vector<SimpleDrawQuad*>::const_iterator dq_iter = dq_list.begin();
518 dq_iter != dq_list.end();
519 ++dq_iter) {
520 EXPECT_EQ(*dq_iter, &*iter);
521 EXPECT_EQ(i, (*dq_iter)->get_value());
522 ++i;
523 ++num_iters_in_vector;
524 ++iter;
525 }
526 }
527
528 EXPECT_EQ(num_iters_in_vector, num_iters_in_list);
529 }
530
531 TEST(ListContainerTest,
532 SimpleIterationWithIndexMoreThanOneAllocationSimpleDrawQuad) {
533 ListContainer<DrawQuad> list(sizeof(kLargestDrawQuad), 2);
534 std::vector<SimpleDrawQuad*> dq_list;
535 size_t size = 10;
536 for (size_t i = 0; i < size; ++i) {
537 dq_list.push_back(list.AllocateAndConstruct<SimpleDrawQuad>());
538 }
539 EXPECT_EQ(size, list.size());
540
541 for (size_t i = 0; i < size; ++i) {
542 static_cast<SimpleDrawQuad*>(list.ElementAt(i))->set_value(i);
543 }
544
545 size_t num_iters_in_list = 0;
546 {
547 int i = 0;
548 std::vector<SimpleDrawQuad*>::const_iterator dq_iter = dq_list.begin();
danakj 2014/09/24 23:55:57 similar comment here for this test. i like that yo
549 for (ListContainer<DrawQuad>::Iterator iter = list.begin();
550 iter != list.end();
551 ++iter) {
552 EXPECT_EQ(*dq_iter, &*iter);
553 EXPECT_EQ(i, static_cast<SimpleDrawQuad&>(*iter).get_value());
554 ++i;
555 ++num_iters_in_list;
556 ++dq_iter;
557 }
558 }
559
560 size_t num_iters_in_vector = 0;
561 {
562 int i = 0;
563 ListContainer<DrawQuad>::Iterator iter = list.begin();
564 for (std::vector<SimpleDrawQuad*>::const_iterator dq_iter = dq_list.begin();
565 dq_iter != dq_list.end();
566 ++dq_iter) {
567 EXPECT_EQ(*dq_iter, &*iter);
568 EXPECT_EQ(i, (*dq_iter)->get_value());
569 ++i;
570 ++num_iters_in_vector;
571 ++iter;
572 }
573 }
574
575 EXPECT_EQ(num_iters_in_vector, num_iters_in_list);
576 }
577
469 } // namespace 578 } // namespace
470 } // namespace cc 579 } // namespace cc
OLDNEW
« no previous file with comments | « cc/quads/list_container.cc ('k') | cc/quads/render_pass.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698