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

Side by Side Diff: Source/core/platform/graphics/chromium/ImageDecodingStoreTest.cpp

Issue 47623002: Fix more warnings on linux (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix RenderImage.cpp. Created 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 RefPtr<SharedBuffer> m_data; 136 RefPtr<SharedBuffer> m_data;
137 RefPtr<ImageFrameGenerator> m_generator; 137 RefPtr<ImageFrameGenerator> m_generator;
138 int m_decodersDestroyed; 138 int m_decodersDestroyed;
139 }; 139 };
140 140
141 TEST_F(ImageDecodingStoreTest, evictOneCache) 141 TEST_F(ImageDecodingStoreTest, evictOneCache)
142 { 142 {
143 insertCache(SkISize::Make(1, 1)); 143 insertCache(SkISize::Make(1, 1));
144 insertCache(SkISize::Make(2, 2)); 144 insertCache(SkISize::Make(2, 2));
145 insertCache(SkISize::Make(3, 3)); 145 insertCache(SkISize::Make(3, 3));
146 EXPECT_EQ(3u, ImageDecodingStore::instance()->cacheEntries()); 146 EXPECT_EQ(3, ImageDecodingStore::instance()->cacheEntries());
147 147
148 evictOneCache(); 148 evictOneCache();
149 EXPECT_EQ(2u, ImageDecodingStore::instance()->cacheEntries()); 149 EXPECT_EQ(2, ImageDecodingStore::instance()->cacheEntries());
150 150
151 evictOneCache(); 151 evictOneCache();
152 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries()); 152 EXPECT_EQ(1, ImageDecodingStore::instance()->cacheEntries());
153 } 153 }
154 154
155 TEST_F(ImageDecodingStoreTest, pruneOrderIsLeastRecentlyUsed) 155 TEST_F(ImageDecodingStoreTest, pruneOrderIsLeastRecentlyUsed)
156 { 156 {
157 insertCache(SkISize::Make(1, 1)); 157 insertCache(SkISize::Make(1, 1));
158 insertCache(SkISize::Make(2, 2)); 158 insertCache(SkISize::Make(2, 2));
159 insertCache(SkISize::Make(3, 3)); 159 insertCache(SkISize::Make(3, 3));
160 insertCache(SkISize::Make(4, 4)); 160 insertCache(SkISize::Make(4, 4));
161 insertCache(SkISize::Make(5, 5)); 161 insertCache(SkISize::Make(5, 5));
162 EXPECT_EQ(5u, ImageDecodingStore::instance()->cacheEntries()); 162 EXPECT_EQ(5, ImageDecodingStore::instance()->cacheEntries());
163 163
164 // Use cache in the order 3, 2, 4, 1, 5. 164 // Use cache in the order 3, 2, 4, 1, 5.
165 EXPECT_TRUE(isCacheAlive(SkISize::Make(3, 3))); 165 EXPECT_TRUE(isCacheAlive(SkISize::Make(3, 3)));
166 EXPECT_TRUE(isCacheAlive(SkISize::Make(2, 2))); 166 EXPECT_TRUE(isCacheAlive(SkISize::Make(2, 2)));
167 EXPECT_TRUE(isCacheAlive(SkISize::Make(4, 4))); 167 EXPECT_TRUE(isCacheAlive(SkISize::Make(4, 4)));
168 EXPECT_TRUE(isCacheAlive(SkISize::Make(1, 1))); 168 EXPECT_TRUE(isCacheAlive(SkISize::Make(1, 1)));
169 EXPECT_TRUE(isCacheAlive(SkISize::Make(5, 5))); 169 EXPECT_TRUE(isCacheAlive(SkISize::Make(5, 5)));
170 170
171 // Evict 3. 171 // Evict 3.
172 evictOneCache(); 172 evictOneCache();
173 EXPECT_FALSE(isCacheAlive(SkISize::Make(3, 3))); 173 EXPECT_FALSE(isCacheAlive(SkISize::Make(3, 3)));
174 EXPECT_EQ(4u, ImageDecodingStore::instance()->cacheEntries()); 174 EXPECT_EQ(4, ImageDecodingStore::instance()->cacheEntries());
175 175
176 // Evict 2. 176 // Evict 2.
177 evictOneCache(); 177 evictOneCache();
178 EXPECT_FALSE(isCacheAlive(SkISize::Make(2, 2))); 178 EXPECT_FALSE(isCacheAlive(SkISize::Make(2, 2)));
179 EXPECT_EQ(3u, ImageDecodingStore::instance()->cacheEntries()); 179 EXPECT_EQ(3, ImageDecodingStore::instance()->cacheEntries());
180 180
181 // Evict 4. 181 // Evict 4.
182 evictOneCache(); 182 evictOneCache();
183 EXPECT_FALSE(isCacheAlive(SkISize::Make(4, 4))); 183 EXPECT_FALSE(isCacheAlive(SkISize::Make(4, 4)));
184 EXPECT_EQ(2u, ImageDecodingStore::instance()->cacheEntries()); 184 EXPECT_EQ(2, ImageDecodingStore::instance()->cacheEntries());
185 185
186 // Evict 1. 186 // Evict 1.
187 evictOneCache(); 187 evictOneCache();
188 EXPECT_FALSE(isCacheAlive(SkISize::Make(1, 1))); 188 EXPECT_FALSE(isCacheAlive(SkISize::Make(1, 1)));
189 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries()); 189 EXPECT_EQ(1, ImageDecodingStore::instance()->cacheEntries());
190 190
191 // Evict 5. 191 // Evict 5.
192 evictOneCache(); 192 evictOneCache();
193 EXPECT_FALSE(isCacheAlive(SkISize::Make(5, 5))); 193 EXPECT_FALSE(isCacheAlive(SkISize::Make(5, 5)));
194 EXPECT_EQ(0u, ImageDecodingStore::instance()->cacheEntries()); 194 EXPECT_EQ(0, ImageDecodingStore::instance()->cacheEntries());
195 } 195 }
196 196
197 TEST_F(ImageDecodingStoreTest, pruneCausedByInsertion) 197 TEST_F(ImageDecodingStoreTest, pruneCausedByInsertion)
198 { 198 {
199 ImageDecodingStore::instance()->setCacheLimitInBytes(100); 199 ImageDecodingStore::instance()->setCacheLimitInBytes(100);
200 200
201 // Insert 100 entries. 201 // Insert 100 entries.
202 // Cache entries stored should increase and eventually decrease to 1. 202 // Cache entries stored should increase and eventually decrease to 1.
203 insertCache(SkISize::Make(1, 1)); 203 insertCache(SkISize::Make(1, 1));
204 insertCache(SkISize::Make(2, 2)); 204 insertCache(SkISize::Make(2, 2));
205 insertCache(SkISize::Make(3, 3)); 205 insertCache(SkISize::Make(3, 3));
206 EXPECT_EQ(3u, ImageDecodingStore::instance()->cacheEntries()); 206 EXPECT_EQ(3, ImageDecodingStore::instance()->cacheEntries());
207 207
208 for (int i = 4; i <= 100; ++i) 208 for (int i = 4; i <= 100; ++i)
209 insertCache(SkISize::Make(i, i)); 209 insertCache(SkISize::Make(i, i));
210 210
211 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries()); 211 EXPECT_EQ(1, ImageDecodingStore::instance()->cacheEntries());
212 for (int i = 1; i <= 99; ++i) 212 for (int i = 1; i <= 99; ++i)
213 EXPECT_FALSE(isCacheAlive(SkISize::Make(i, i))); 213 EXPECT_FALSE(isCacheAlive(SkISize::Make(i, i)));
214 EXPECT_TRUE(isCacheAlive(SkISize::Make(100, 100))); 214 EXPECT_TRUE(isCacheAlive(SkISize::Make(100, 100)));
215 } 215 }
216 216
217 TEST_F(ImageDecodingStoreTest, cacheInUseNotEvicted) 217 TEST_F(ImageDecodingStoreTest, cacheInUseNotEvicted)
218 { 218 {
219 insertCache(SkISize::Make(1, 1)); 219 insertCache(SkISize::Make(1, 1));
220 insertCache(SkISize::Make(2, 2)); 220 insertCache(SkISize::Make(2, 2));
221 insertCache(SkISize::Make(3, 3)); 221 insertCache(SkISize::Make(3, 3));
222 EXPECT_EQ(3u, ImageDecodingStore::instance()->cacheEntries()); 222 EXPECT_EQ(3, ImageDecodingStore::instance()->cacheEntries());
223 223
224 const ScaledImageFragment* cachedImage = lockCache(SkISize::Make(1, 1)); 224 const ScaledImageFragment* cachedImage = lockCache(SkISize::Make(1, 1));
225 ASSERT_TRUE(cachedImage); 225 ASSERT_TRUE(cachedImage);
226 226
227 // Cache 2 is evicted because cache 1 is in use. 227 // Cache 2 is evicted because cache 1 is in use.
228 evictOneCache(); 228 evictOneCache();
229 EXPECT_TRUE(isCacheAlive(SkISize::Make(1, 1))); 229 EXPECT_TRUE(isCacheAlive(SkISize::Make(1, 1)));
230 EXPECT_FALSE(isCacheAlive(SkISize::Make(2, 2))); 230 EXPECT_FALSE(isCacheAlive(SkISize::Make(2, 2)));
231 EXPECT_TRUE(isCacheAlive(SkISize::Make(3, 3))); 231 EXPECT_TRUE(isCacheAlive(SkISize::Make(3, 3)));
232 232
233 EXPECT_EQ(2u, ImageDecodingStore::instance()->cacheEntries()); 233 EXPECT_EQ(2, ImageDecodingStore::instance()->cacheEntries());
234 unlockCache(cachedImage); 234 unlockCache(cachedImage);
235 } 235 }
236 236
237 TEST_F(ImageDecodingStoreTest, destroyImageFrameGenerator) 237 TEST_F(ImageDecodingStoreTest, destroyImageFrameGenerator)
238 { 238 {
239 insertCache(SkISize::Make(1, 1)); 239 insertCache(SkISize::Make(1, 1));
240 insertCache(SkISize::Make(2, 2)); 240 insertCache(SkISize::Make(2, 2));
241 insertCache(SkISize::Make(3, 3)); 241 insertCache(SkISize::Make(3, 3));
242 OwnPtr<ImageDecoder> decoder = MockImageDecoder::create(this); 242 OwnPtr<ImageDecoder> decoder = MockImageDecoder::create(this);
243 decoder->setSize(1, 1); 243 decoder->setSize(1, 1);
244 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder.rel ease(), false); 244 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder.rel ease(), false);
245 EXPECT_EQ(4u, ImageDecodingStore::instance()->cacheEntries()); 245 EXPECT_EQ(4, ImageDecodingStore::instance()->cacheEntries());
246 246
247 m_generator.clear(); 247 m_generator.clear();
248 EXPECT_FALSE(ImageDecodingStore::instance()->cacheEntries()); 248 EXPECT_FALSE(ImageDecodingStore::instance()->cacheEntries());
249 } 249 }
250 250
251 TEST_F(ImageDecodingStoreTest, insertDecoder) 251 TEST_F(ImageDecodingStoreTest, insertDecoder)
252 { 252 {
253 const SkISize size = SkISize::Make(1, 1); 253 const SkISize size = SkISize::Make(1, 1);
254 OwnPtr<ImageDecoder> decoder = MockImageDecoder::create(this); 254 OwnPtr<ImageDecoder> decoder = MockImageDecoder::create(this);
255 decoder->setSize(1, 1); 255 decoder->setSize(1, 1);
256 const ImageDecoder* refDecoder = decoder.get(); 256 const ImageDecoder* refDecoder = decoder.get();
257 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder.rel ease(), false); 257 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder.rel ease(), false);
258 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries()); 258 EXPECT_EQ(1, ImageDecodingStore::instance()->cacheEntries());
259 EXPECT_EQ(4u, ImageDecodingStore::instance()->memoryUsageInBytes()); 259 EXPECT_EQ(4u, ImageDecodingStore::instance()->memoryUsageInBytes());
260 260
261 ImageDecoder* testDecoder; 261 ImageDecoder* testDecoder;
262 EXPECT_TRUE(ImageDecodingStore::instance()->lockDecoder(m_generator.get(), s ize, &testDecoder)); 262 EXPECT_TRUE(ImageDecodingStore::instance()->lockDecoder(m_generator.get(), s ize, &testDecoder));
263 EXPECT_TRUE(testDecoder); 263 EXPECT_TRUE(testDecoder);
264 EXPECT_EQ(refDecoder, testDecoder); 264 EXPECT_EQ(refDecoder, testDecoder);
265 ImageDecodingStore::instance()->unlockDecoder(m_generator.get(), testDecoder ); 265 ImageDecodingStore::instance()->unlockDecoder(m_generator.get(), testDecoder );
266 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries()); 266 EXPECT_EQ(1, ImageDecodingStore::instance()->cacheEntries());
267 } 267 }
268 268
269 TEST_F(ImageDecodingStoreTest, evictDecoder) 269 TEST_F(ImageDecodingStoreTest, evictDecoder)
270 { 270 {
271 OwnPtr<ImageDecoder> decoder1 = MockImageDecoder::create(this); 271 OwnPtr<ImageDecoder> decoder1 = MockImageDecoder::create(this);
272 OwnPtr<ImageDecoder> decoder2 = MockImageDecoder::create(this); 272 OwnPtr<ImageDecoder> decoder2 = MockImageDecoder::create(this);
273 OwnPtr<ImageDecoder> decoder3 = MockImageDecoder::create(this); 273 OwnPtr<ImageDecoder> decoder3 = MockImageDecoder::create(this);
274 decoder1->setSize(1, 1); 274 decoder1->setSize(1, 1);
275 decoder2->setSize(2, 2); 275 decoder2->setSize(2, 2);
276 decoder3->setSize(3, 3); 276 decoder3->setSize(3, 3);
277 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder1.re lease(), false); 277 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder1.re lease(), false);
278 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder2.re lease(), false); 278 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder2.re lease(), false);
279 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder3.re lease(), false); 279 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder3.re lease(), false);
280 EXPECT_EQ(3u, ImageDecodingStore::instance()->cacheEntries()); 280 EXPECT_EQ(3, ImageDecodingStore::instance()->cacheEntries());
281 EXPECT_EQ(56u, ImageDecodingStore::instance()->memoryUsageInBytes()); 281 EXPECT_EQ(56u, ImageDecodingStore::instance()->memoryUsageInBytes());
282 282
283 evictOneCache(); 283 evictOneCache();
284 EXPECT_EQ(2u, ImageDecodingStore::instance()->cacheEntries()); 284 EXPECT_EQ(2, ImageDecodingStore::instance()->cacheEntries());
285 EXPECT_EQ(52u, ImageDecodingStore::instance()->memoryUsageInBytes()); 285 EXPECT_EQ(52u, ImageDecodingStore::instance()->memoryUsageInBytes());
286 286
287 evictOneCache(); 287 evictOneCache();
288 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries()); 288 EXPECT_EQ(1, ImageDecodingStore::instance()->cacheEntries());
289 EXPECT_EQ(36u, ImageDecodingStore::instance()->memoryUsageInBytes()); 289 EXPECT_EQ(36u, ImageDecodingStore::instance()->memoryUsageInBytes());
290 290
291 evictOneCache(); 291 evictOneCache();
292 EXPECT_FALSE(ImageDecodingStore::instance()->cacheEntries()); 292 EXPECT_FALSE(ImageDecodingStore::instance()->cacheEntries());
293 EXPECT_FALSE(ImageDecodingStore::instance()->memoryUsageInBytes()); 293 EXPECT_FALSE(ImageDecodingStore::instance()->memoryUsageInBytes());
294 } 294 }
295 295
296 TEST_F(ImageDecodingStoreTest, decoderInUseNotEvicted) 296 TEST_F(ImageDecodingStoreTest, decoderInUseNotEvicted)
297 { 297 {
298 OwnPtr<ImageDecoder> decoder1 = MockImageDecoder::create(this); 298 OwnPtr<ImageDecoder> decoder1 = MockImageDecoder::create(this);
299 OwnPtr<ImageDecoder> decoder2 = MockImageDecoder::create(this); 299 OwnPtr<ImageDecoder> decoder2 = MockImageDecoder::create(this);
300 OwnPtr<ImageDecoder> decoder3 = MockImageDecoder::create(this); 300 OwnPtr<ImageDecoder> decoder3 = MockImageDecoder::create(this);
301 decoder1->setSize(1, 1); 301 decoder1->setSize(1, 1);
302 decoder2->setSize(2, 2); 302 decoder2->setSize(2, 2);
303 decoder3->setSize(3, 3); 303 decoder3->setSize(3, 3);
304 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder1.re lease(), false); 304 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder1.re lease(), false);
305 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder2.re lease(), false); 305 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder2.re lease(), false);
306 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder3.re lease(), false); 306 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder3.re lease(), false);
307 EXPECT_EQ(3u, ImageDecodingStore::instance()->cacheEntries()); 307 EXPECT_EQ(3, ImageDecodingStore::instance()->cacheEntries());
308 308
309 ImageDecoder* testDecoder; 309 ImageDecoder* testDecoder;
310 EXPECT_TRUE(ImageDecodingStore::instance()->lockDecoder(m_generator.get(), S kISize::Make(2, 2), &testDecoder)); 310 EXPECT_TRUE(ImageDecodingStore::instance()->lockDecoder(m_generator.get(), S kISize::Make(2, 2), &testDecoder));
311 311
312 evictOneCache(); 312 evictOneCache();
313 evictOneCache(); 313 evictOneCache();
314 evictOneCache(); 314 evictOneCache();
315 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries()); 315 EXPECT_EQ(1, ImageDecodingStore::instance()->cacheEntries());
316 EXPECT_EQ(16u, ImageDecodingStore::instance()->memoryUsageInBytes()); 316 EXPECT_EQ(16u, ImageDecodingStore::instance()->memoryUsageInBytes());
317 317
318 ImageDecodingStore::instance()->unlockDecoder(m_generator.get(), testDecoder ); 318 ImageDecodingStore::instance()->unlockDecoder(m_generator.get(), testDecoder );
319 evictOneCache(); 319 evictOneCache();
320 EXPECT_FALSE(ImageDecodingStore::instance()->cacheEntries()); 320 EXPECT_FALSE(ImageDecodingStore::instance()->cacheEntries());
321 EXPECT_FALSE(ImageDecodingStore::instance()->memoryUsageInBytes()); 321 EXPECT_FALSE(ImageDecodingStore::instance()->memoryUsageInBytes());
322 } 322 }
323 323
324 TEST_F(ImageDecodingStoreTest, removeDecoder) 324 TEST_F(ImageDecodingStoreTest, removeDecoder)
325 { 325 {
326 const SkISize size = SkISize::Make(1, 1); 326 const SkISize size = SkISize::Make(1, 1);
327 OwnPtr<ImageDecoder> decoder = MockImageDecoder::create(this); 327 OwnPtr<ImageDecoder> decoder = MockImageDecoder::create(this);
328 decoder->setSize(1, 1); 328 decoder->setSize(1, 1);
329 const ImageDecoder* refDecoder = decoder.get(); 329 const ImageDecoder* refDecoder = decoder.get();
330 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder.rel ease(), false); 330 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder.rel ease(), false);
331 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries()); 331 EXPECT_EQ(1, ImageDecodingStore::instance()->cacheEntries());
332 EXPECT_EQ(4u, ImageDecodingStore::instance()->memoryUsageInBytes()); 332 EXPECT_EQ(4u, ImageDecodingStore::instance()->memoryUsageInBytes());
333 333
334 ImageDecoder* testDecoder; 334 ImageDecoder* testDecoder;
335 EXPECT_TRUE(ImageDecodingStore::instance()->lockDecoder(m_generator.get(), s ize, &testDecoder)); 335 EXPECT_TRUE(ImageDecodingStore::instance()->lockDecoder(m_generator.get(), s ize, &testDecoder));
336 EXPECT_TRUE(testDecoder); 336 EXPECT_TRUE(testDecoder);
337 EXPECT_EQ(refDecoder, testDecoder); 337 EXPECT_EQ(refDecoder, testDecoder);
338 ImageDecodingStore::instance()->removeDecoder(m_generator.get(), testDecoder ); 338 ImageDecodingStore::instance()->removeDecoder(m_generator.get(), testDecoder );
339 EXPECT_FALSE(ImageDecodingStore::instance()->cacheEntries()); 339 EXPECT_FALSE(ImageDecodingStore::instance()->cacheEntries());
340 340
341 EXPECT_FALSE(ImageDecodingStore::instance()->lockDecoder(m_generator.get(), size, &testDecoder)); 341 EXPECT_FALSE(ImageDecodingStore::instance()->lockDecoder(m_generator.get(), size, &testDecoder));
342 } 342 }
343 343
344 TEST_F(ImageDecodingStoreTest, multipleIndex) 344 TEST_F(ImageDecodingStoreTest, multipleIndex)
345 { 345 {
346 const SkISize size = SkISize::Make(1, 1); 346 const SkISize size = SkISize::Make(1, 1);
347 const ScaledImageFragment* refImage = ImageDecodingStore::instance()->insert AndLockCache( 347 const ScaledImageFragment* refImage = ImageDecodingStore::instance()->insert AndLockCache(
348 m_generator.get(), createCompleteImage(size, false, 0)); 348 m_generator.get(), createCompleteImage(size, false, 0));
349 unlockCache(refImage); 349 unlockCache(refImage);
350 const ScaledImageFragment* testImage = ImageDecodingStore::instance()->inser tAndLockCache( 350 const ScaledImageFragment* testImage = ImageDecodingStore::instance()->inser tAndLockCache(
351 m_generator.get(), createCompleteImage(size, false, 1)); 351 m_generator.get(), createCompleteImage(size, false, 1));
352 unlockCache(testImage); 352 unlockCache(testImage);
353 EXPECT_NE(refImage, testImage); 353 EXPECT_NE(refImage, testImage);
354 EXPECT_EQ(2u, ImageDecodingStore::instance()->cacheEntries()); 354 EXPECT_EQ(2, ImageDecodingStore::instance()->cacheEntries());
355 355
356 EXPECT_TRUE(ImageDecodingStore::instance()->lockCache(m_generator.get(), siz e, 1, &refImage)); 356 EXPECT_TRUE(ImageDecodingStore::instance()->lockCache(m_generator.get(), siz e, 1, &refImage));
357 EXPECT_EQ(refImage, testImage); 357 EXPECT_EQ(refImage, testImage);
358 unlockCache(refImage); 358 unlockCache(refImage);
359 } 359 }
360 360
361 TEST_F(ImageDecodingStoreTest, finalAndPartialImage) 361 TEST_F(ImageDecodingStoreTest, finalAndPartialImage)
362 { 362 {
363 const SkISize size = SkISize::Make(1, 1); 363 const SkISize size = SkISize::Make(1, 1);
364 const ScaledImageFragment* refImage = ImageDecodingStore::instance()->insert AndLockCache( 364 const ScaledImageFragment* refImage = ImageDecodingStore::instance()->insert AndLockCache(
365 m_generator.get(), createCompleteImage(size, false, 0)); 365 m_generator.get(), createCompleteImage(size, false, 0));
366 unlockCache(refImage); 366 unlockCache(refImage);
367 const ScaledImageFragment* testImage = ImageDecodingStore::instance()->inser tAndLockCache( 367 const ScaledImageFragment* testImage = ImageDecodingStore::instance()->inser tAndLockCache(
368 m_generator.get(), createIncompleteImage(size, false, 1)); 368 m_generator.get(), createIncompleteImage(size, false, 1));
369 unlockCache(testImage); 369 unlockCache(testImage);
370 EXPECT_NE(refImage, testImage); 370 EXPECT_NE(refImage, testImage);
371 EXPECT_EQ(2u, ImageDecodingStore::instance()->cacheEntries()); 371 EXPECT_EQ(2, ImageDecodingStore::instance()->cacheEntries());
372 372
373 EXPECT_TRUE(ImageDecodingStore::instance()->lockCache(m_generator.get(), siz e, 0, &refImage)); 373 EXPECT_TRUE(ImageDecodingStore::instance()->lockCache(m_generator.get(), siz e, 0, &refImage));
374 EXPECT_NE(refImage, testImage); 374 EXPECT_NE(refImage, testImage);
375 unlockCache(refImage); 375 unlockCache(refImage);
376 } 376 }
377 377
378 TEST_F(ImageDecodingStoreTest, insertNoGenerationCollision) 378 TEST_F(ImageDecodingStoreTest, insertNoGenerationCollision)
379 { 379 {
380 const SkISize size = SkISize::Make(1, 1); 380 const SkISize size = SkISize::Make(1, 1);
381 const ScaledImageFragment* refImage = ImageDecodingStore::instance()->insert AndLockCache( 381 const ScaledImageFragment* refImage = ImageDecodingStore::instance()->insert AndLockCache(
382 m_generator.get(), createIncompleteImage(size, false, 1)); 382 m_generator.get(), createIncompleteImage(size, false, 1));
383 unlockCache(refImage); 383 unlockCache(refImage);
384 const ScaledImageFragment* testImage = ImageDecodingStore::instance()->inser tAndLockCache( 384 const ScaledImageFragment* testImage = ImageDecodingStore::instance()->inser tAndLockCache(
385 m_generator.get(), createIncompleteImage(size, false, 2)); 385 m_generator.get(), createIncompleteImage(size, false, 2));
386 unlockCache(testImage); 386 unlockCache(testImage);
387 EXPECT_NE(refImage, testImage); 387 EXPECT_NE(refImage, testImage);
388 EXPECT_EQ(2u, ImageDecodingStore::instance()->cacheEntries()); 388 EXPECT_EQ(2, ImageDecodingStore::instance()->cacheEntries());
389 } 389 }
390 390
391 TEST_F(ImageDecodingStoreTest, insertGenerationCollision) 391 TEST_F(ImageDecodingStoreTest, insertGenerationCollision)
392 { 392 {
393 const SkISize size = SkISize::Make(1, 1); 393 const SkISize size = SkISize::Make(1, 1);
394 const ScaledImageFragment* refImage = ImageDecodingStore::instance()->insert AndLockCache( 394 const ScaledImageFragment* refImage = ImageDecodingStore::instance()->insert AndLockCache(
395 m_generator.get(), createIncompleteImage(size, false, 1)); 395 m_generator.get(), createIncompleteImage(size, false, 1));
396 unlockCache(refImage); 396 unlockCache(refImage);
397 const ScaledImageFragment* testImage = ImageDecodingStore::instance()->inser tAndLockCache( 397 const ScaledImageFragment* testImage = ImageDecodingStore::instance()->inser tAndLockCache(
398 m_generator.get(), createIncompleteImage(size, false, 1)); 398 m_generator.get(), createIncompleteImage(size, false, 1));
399 unlockCache(testImage); 399 unlockCache(testImage);
400 EXPECT_EQ(refImage, testImage); 400 EXPECT_EQ(refImage, testImage);
401 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries()); 401 EXPECT_EQ(1, ImageDecodingStore::instance()->cacheEntries());
402 } 402 }
403 403
404 TEST_F(ImageDecodingStoreTest, insertGenerationCollisionAfterMemoryDiscarded) 404 TEST_F(ImageDecodingStoreTest, insertGenerationCollisionAfterMemoryDiscarded)
405 { 405 {
406 const SkISize size = SkISize::Make(1, 1); 406 const SkISize size = SkISize::Make(1, 1);
407 const ScaledImageFragment* refImage = ImageDecodingStore::instance()->insert AndLockCache( 407 const ScaledImageFragment* refImage = ImageDecodingStore::instance()->insert AndLockCache(
408 m_generator.get(), createIncompleteImage(size, true, 1)); 408 m_generator.get(), createIncompleteImage(size, true, 1));
409 unlockCache(refImage); 409 unlockCache(refImage);
410 MockDiscardablePixelRef* pixelRef = static_cast<MockDiscardablePixelRef*>(re fImage->bitmap().pixelRef()); 410 MockDiscardablePixelRef* pixelRef = static_cast<MockDiscardablePixelRef*>(re fImage->bitmap().pixelRef());
411 pixelRef->discard(); 411 pixelRef->discard();
412 const ScaledImageFragment* testImage = ImageDecodingStore::instance()->inser tAndLockCache( 412 const ScaledImageFragment* testImage = ImageDecodingStore::instance()->inser tAndLockCache(
413 m_generator.get(), createIncompleteImage(size, false, 1)); 413 m_generator.get(), createIncompleteImage(size, false, 1));
414 unlockCache(testImage); 414 unlockCache(testImage);
415 EXPECT_NE(refImage, testImage); 415 EXPECT_NE(refImage, testImage);
416 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries()); 416 EXPECT_EQ(1, ImageDecodingStore::instance()->cacheEntries());
417 } 417 }
418 418
419 TEST_F(ImageDecodingStoreTest, lockCacheFailedAfterMemoryDiscarded) 419 TEST_F(ImageDecodingStoreTest, lockCacheFailedAfterMemoryDiscarded)
420 { 420 {
421 const ScaledImageFragment* cachedImage = ImageDecodingStore::instance()->ins ertAndLockCache( 421 const ScaledImageFragment* cachedImage = ImageDecodingStore::instance()->ins ertAndLockCache(
422 m_generator.get(), createCompleteImage(SkISize::Make(1, 1), true)); 422 m_generator.get(), createCompleteImage(SkISize::Make(1, 1), true));
423 unlockCache(cachedImage); 423 unlockCache(cachedImage);
424 MockDiscardablePixelRef* pixelRef = static_cast<MockDiscardablePixelRef*>(ca chedImage->bitmap().pixelRef()); 424 MockDiscardablePixelRef* pixelRef = static_cast<MockDiscardablePixelRef*>(ca chedImage->bitmap().pixelRef());
425 pixelRef->discard(); 425 pixelRef->discard();
426 EXPECT_EQ(0, lockCache(SkISize::Make(1, 1))); 426 EXPECT_EQ(0, lockCache(SkISize::Make(1, 1)));
427 EXPECT_EQ(0u, ImageDecodingStore::instance()->cacheEntries()); 427 EXPECT_EQ(0, ImageDecodingStore::instance()->cacheEntries());
428 } 428 }
429 429
430 TEST_F(ImageDecodingStoreTest, clear) 430 TEST_F(ImageDecodingStoreTest, clear)
431 { 431 {
432 insertCache(SkISize::Make(1, 1)); 432 insertCache(SkISize::Make(1, 1));
433 insertCache(SkISize::Make(2, 2)); 433 insertCache(SkISize::Make(2, 2));
434 EXPECT_EQ(2u, ImageDecodingStore::instance()->cacheEntries()); 434 EXPECT_EQ(2, ImageDecodingStore::instance()->cacheEntries());
435 435
436 OwnPtr<ImageDecoder> decoder = MockImageDecoder::create(this); 436 OwnPtr<ImageDecoder> decoder = MockImageDecoder::create(this);
437 decoder->setSize(1, 1); 437 decoder->setSize(1, 1);
438 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder.rel ease(), false); 438 ImageDecodingStore::instance()->insertDecoder(m_generator.get(), decoder.rel ease(), false);
439 EXPECT_EQ(3u, ImageDecodingStore::instance()->cacheEntries()); 439 EXPECT_EQ(3, ImageDecodingStore::instance()->cacheEntries());
440 440
441 ImageDecodingStore::instance()->clear(); 441 ImageDecodingStore::instance()->clear();
442 EXPECT_EQ(0u, ImageDecodingStore::instance()->cacheEntries()); 442 EXPECT_EQ(0, ImageDecodingStore::instance()->cacheEntries());
443 } 443 }
444 444
445 TEST_F(ImageDecodingStoreTest, clearInUse) 445 TEST_F(ImageDecodingStoreTest, clearInUse)
446 { 446 {
447 insertCache(SkISize::Make(1, 1)); 447 insertCache(SkISize::Make(1, 1));
448 insertCache(SkISize::Make(2, 2)); 448 insertCache(SkISize::Make(2, 2));
449 EXPECT_EQ(2u, ImageDecodingStore::instance()->cacheEntries()); 449 EXPECT_EQ(2, ImageDecodingStore::instance()->cacheEntries());
450 450
451 const ScaledImageFragment* cachedImage = lockCache(SkISize::Make(1, 1)); 451 const ScaledImageFragment* cachedImage = lockCache(SkISize::Make(1, 1));
452 ASSERT_TRUE(cachedImage); 452 ASSERT_TRUE(cachedImage);
453 ImageDecodingStore::instance()->clear(); 453 ImageDecodingStore::instance()->clear();
454 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries()); 454 EXPECT_EQ(1, ImageDecodingStore::instance()->cacheEntries());
455 455
456 unlockCache(cachedImage); 456 unlockCache(cachedImage);
457 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries()); 457 EXPECT_EQ(1, ImageDecodingStore::instance()->cacheEntries());
458 } 458 }
459 459
460 } // namespace 460 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698