OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |