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

Side by Side Diff: blimp/common/compositor/blimp_picture_cache_registry_unittest.cc

Issue 1982893002: [blimp] Add SkPicture caching support. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: git merge origin/master Created 4 years, 6 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
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "blimp/common/compositor/blimp_picture_cache_registry.h"
6
7 #include <stdint.h>
8 #include <algorithm>
9 #include <unordered_set>
10 #include <vector>
11
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 namespace blimp {
15 namespace {
16
17 bool Contains(std::vector<uint32_t> haystack, uint32_t needle) {
Kevin M 2016/06/06 23:33:58 Your tests might benefit from EXPECT_THAT(added_,
nyquist 2016/06/10 22:02:24 Wow, that and EXPECT_TRUE(foo.empty()) was awesome
18 return std::find(haystack.begin(), haystack.end(), needle) != haystack.end();
19 }
20
21 class BlimpPictureCacheRegistryTest : public testing::Test {
22 protected:
23 BlimpPictureCacheRegistry registry_;
24 std::vector<uint32_t> added_;
25 std::vector<uint32_t> removed_;
26 };
Kevin M 2016/06/06 23:33:58 DISALLOW yada
nyquist 2016/06/10 22:02:24 Done.
27
28 TEST_F(BlimpPictureCacheRegistryTest, SingleItemCommitFlow) {
29 registry_.Commit(&added_, &removed_);
30 EXPECT_EQ(0U, added_.size());
31 EXPECT_EQ(0U, removed_.size());
32
33 uint32_t item = 1;
34 registry_.IncrementRefCount(item);
35 registry_.Commit(&added_, &removed_);
36 EXPECT_EQ(1U, added_.size());
37 EXPECT_EQ(0U, removed_.size());
38 EXPECT_TRUE(Contains(added_, item));
39 added_.clear();
40
41 registry_.Commit(&added_, &removed_);
42 EXPECT_EQ(0U, added_.size());
43 EXPECT_EQ(0U, removed_.size());
44
45 registry_.DecrementRefCount(item);
46 registry_.Commit(&added_, &removed_);
47 EXPECT_EQ(0U, added_.size());
48 EXPECT_EQ(1U, removed_.size());
49 EXPECT_TRUE(Contains(removed_, item));
50 }
51
52 TEST_F(BlimpPictureCacheRegistryTest, SingleItemMultipleTimesInSingleCommit) {
53 uint32_t item = 1;
54 registry_.IncrementRefCount(item);
55 registry_.IncrementRefCount(item);
56 registry_.Commit(&added_, &removed_);
57 EXPECT_EQ(1U, added_.size());
58 EXPECT_EQ(0U, removed_.size());
59 EXPECT_TRUE(Contains(added_, item));
60 added_.clear();
61
62 registry_.Commit(&added_, &removed_);
63 EXPECT_EQ(0U, added_.size());
64 EXPECT_EQ(0U, removed_.size());
65
66 registry_.DecrementRefCount(item);
67 registry_.DecrementRefCount(item);
68 registry_.Commit(&added_, &removed_);
69 EXPECT_EQ(0U, added_.size());
70 EXPECT_EQ(1U, removed_.size());
71 EXPECT_TRUE(Contains(removed_, item));
72 }
73
74 TEST_F(BlimpPictureCacheRegistryTest, SingleItemMultipleTimesAcrossCommits) {
75 uint32_t item = 1;
76 registry_.IncrementRefCount(item);
77 registry_.Commit(&added_, &removed_);
78 EXPECT_EQ(1U, added_.size());
79 EXPECT_EQ(0U, removed_.size());
80 EXPECT_TRUE(Contains(added_, item));
81 added_.clear();
82
83 registry_.IncrementRefCount(item);
84 registry_.Commit(&added_, &removed_);
85 EXPECT_EQ(0U, added_.size());
86 EXPECT_EQ(0U, removed_.size());
87
88 registry_.DecrementRefCount(item);
89 registry_.Commit(&added_, &removed_);
90 EXPECT_EQ(0U, added_.size());
91 EXPECT_EQ(0U, removed_.size());
92
93 registry_.DecrementRefCount(item);
94 registry_.Commit(&added_, &removed_);
95 EXPECT_EQ(0U, added_.size());
96 EXPECT_EQ(1U, removed_.size());
97 EXPECT_TRUE(Contains(removed_, item));
98 }
99
100 TEST_F(BlimpPictureCacheRegistryTest, SingleItemComplexInteractions) {
101 uint32_t item = 1;
102 registry_.IncrementRefCount(item);
103 registry_.DecrementRefCount(item);
104 registry_.Commit(&added_, &removed_);
105 EXPECT_EQ(0U, added_.size());
106 EXPECT_EQ(0U, removed_.size());
107
108 registry_.IncrementRefCount(item);
109 registry_.DecrementRefCount(item);
110 registry_.IncrementRefCount(item);
111 registry_.Commit(&added_, &removed_);
112 EXPECT_EQ(1U, added_.size());
113 EXPECT_EQ(0U, removed_.size());
114 EXPECT_TRUE(Contains(added_, item));
115 added_.clear();
116
117 registry_.DecrementRefCount(item);
118 registry_.IncrementRefCount(item);
119 registry_.DecrementRefCount(item);
120 registry_.Commit(&added_, &removed_);
121 EXPECT_EQ(0U, added_.size());
122 EXPECT_EQ(1U, removed_.size());
123 EXPECT_TRUE(Contains(removed_, item));
124 }
125
126 TEST_F(BlimpPictureCacheRegistryTest, MultipleItems) {
127 uint32_t item1 = 1;
128 uint32_t item2 = 2;
129 uint32_t item3 = 3;
130 registry_.IncrementRefCount(item1);
131 registry_.IncrementRefCount(item2);
132 registry_.IncrementRefCount(item3);
133 registry_.Commit(&added_, &removed_);
134 EXPECT_EQ(3U, added_.size());
135 EXPECT_EQ(0U, removed_.size());
136 EXPECT_TRUE(Contains(added_, item1));
137 EXPECT_TRUE(Contains(added_, item2));
138 EXPECT_TRUE(Contains(added_, item3));
139 added_.clear();
140
141 registry_.DecrementRefCount(item3);
142 registry_.Commit(&added_, &removed_);
143 EXPECT_EQ(0U, added_.size());
144 EXPECT_EQ(1U, removed_.size());
145 EXPECT_TRUE(Contains(removed_, item3));
146 removed_.clear();
147
148 registry_.DecrementRefCount(item2);
149 registry_.IncrementRefCount(item3);
150 registry_.Commit(&added_, &removed_);
151 EXPECT_EQ(1U, added_.size());
152 EXPECT_EQ(1U, removed_.size());
153 EXPECT_TRUE(Contains(added_, item3));
154 EXPECT_TRUE(Contains(removed_, item2));
155 added_.clear();
156 removed_.clear();
157
158 registry_.IncrementRefCount(item2);
159 registry_.Commit(&added_, &removed_);
160 EXPECT_EQ(1U, added_.size());
161 EXPECT_EQ(0U, removed_.size());
162 EXPECT_TRUE(Contains(added_, item2));
163 added_.clear();
164
165 registry_.DecrementRefCount(item1);
166 registry_.DecrementRefCount(item2);
167 registry_.DecrementRefCount(item3);
168 registry_.Commit(&added_, &removed_);
169 EXPECT_EQ(0U, added_.size());
170 EXPECT_EQ(3U, removed_.size());
171 EXPECT_TRUE(Contains(removed_, item1));
172 EXPECT_TRUE(Contains(removed_, item2));
173 EXPECT_TRUE(Contains(removed_, item3));
174 }
175
176 } // namespace
177 } // namespace blimp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698