| Index: tests/SkResourceCacheTest.cpp
|
| diff --git a/tests/SkResourceCacheTest.cpp b/tests/SkResourceCacheTest.cpp
|
| index b71c7443e57ad6ad7c26a7f72c8078415a9cd9c4..aa41663ed6533c5ce633e51caec41c590537e8b8 100644
|
| --- a/tests/SkResourceCacheTest.cpp
|
| +++ b/tests/SkResourceCacheTest.cpp
|
| @@ -72,3 +72,47 @@ DEF_TEST(ResourceCache_SingleAllocationByteLimit, reporter) {
|
| SkGraphics::SetResourceCacheSingleAllocationByteLimit(originalAllocationLimit);
|
| SkGraphics::SetResourceCacheTotalByteLimit(originalByteLimit);
|
| }
|
| +
|
| +static SkBitmap createAllocatedBitmap(const SkImageInfo& info) {
|
| + SkBitmap cachedBitmap;
|
| + cachedBitmap.setInfo(info);
|
| + SkBitmap::Allocator* allocator = SkBitmapCache::GetAllocator();
|
| + if (NULL != allocator) {
|
| + allocator->allocPixelRef(&cachedBitmap, 0);
|
| + } else {
|
| + cachedBitmap.allocPixels();
|
| + }
|
| +
|
| + return cachedBitmap;
|
| +}
|
| +
|
| +// http://skbug.com/2894
|
| +DEF_TEST(BitmapCache_add_rect, reporter) {
|
| + SkBitmap bm;
|
| + SkIRect rect = SkIRect::MakeWH(5, 5);
|
| + SkBitmap cachedBitmap = createAllocatedBitmap(SkImageInfo::MakeN32Premul(5, 5));
|
| + cachedBitmap.setImmutable();
|
| +
|
| +
|
| + // Should not be in the cache
|
| + REPORTER_ASSERT(reporter, !SkBitmapCache::Find(cachedBitmap.getGenerationID(), rect, &bm));
|
| +
|
| + SkBitmapCache::Add(cachedBitmap.getGenerationID(), rect, cachedBitmap);
|
| + // Should be in the cache, we just added it
|
| + REPORTER_ASSERT(reporter, SkBitmapCache::Find(cachedBitmap.getGenerationID(), rect, &bm));
|
| +}
|
| +DEF_TEST(BitmapCache_add_rect_canonicalize, reporter) {
|
| + SkBitmap bm;
|
| + SkIRect rect = SkIRect::MakeWH(5, 5);
|
| + SkBitmap cachedBitmap = createAllocatedBitmap(SkImageInfo::MakeN32Premul(5, 5));
|
| + cachedBitmap.setImmutable();
|
| +
|
| +
|
| + SkBitmapCache::Add(cachedBitmap.getGenerationID(), SkIRect::MakeEmpty(), cachedBitmap);
|
| + // Should not be in the cache, rect was empty when calling Add
|
| + REPORTER_ASSERT(reporter, !SkBitmapCache::Find(cachedBitmap.getGenerationID(), rect, &bm));
|
| +
|
| + SkBitmapCache::Add(cachedBitmap.getGenerationID(), SkIRect::MakeWH(6, 6), cachedBitmap);
|
| + // Should be in the cache, we just added it and SkIRect(6, 6) has been canonicalized to SkIRect(5, 5)
|
| + REPORTER_ASSERT(reporter, SkBitmapCache::Find(cachedBitmap.getGenerationID(), rect, &bm));
|
| +}
|
|
|