| Index: tests/SkResourceCacheTest.cpp
|
| diff --git a/tests/SkResourceCacheTest.cpp b/tests/SkResourceCacheTest.cpp
|
| index b71c7443e57ad6ad7c26a7f72c8078415a9cd9c4..aaded37744acf0c16984444788c4df53952bce79 100644
|
| --- a/tests/SkResourceCacheTest.cpp
|
| +++ b/tests/SkResourceCacheTest.cpp
|
| @@ -72,3 +72,38 @@ 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();
|
| +
|
| + // Wrong subset size
|
| + REPORTER_ASSERT(reporter, ! SkBitmapCache::Add(cachedBitmap.getGenerationID(), SkIRect::MakeWH(4, 6), cachedBitmap));
|
| + REPORTER_ASSERT(reporter, ! SkBitmapCache::Find(cachedBitmap.getGenerationID(), rect, &bm));
|
| + // Wrong offset value
|
| + REPORTER_ASSERT(reporter, ! SkBitmapCache::Add(cachedBitmap.getGenerationID(), SkIRect::MakeXYWH(-1, 0, 5, 5), cachedBitmap));
|
| + REPORTER_ASSERT(reporter, ! SkBitmapCache::Find(cachedBitmap.getGenerationID(), rect, &bm));
|
| +
|
| + // Should not be in the cache
|
| + REPORTER_ASSERT(reporter, !SkBitmapCache::Find(cachedBitmap.getGenerationID(), rect, &bm));
|
| +
|
| + REPORTER_ASSERT(reporter, SkBitmapCache::Add(cachedBitmap.getGenerationID(), rect, cachedBitmap));
|
| + // Should be in the cache, we just added it
|
| + REPORTER_ASSERT(reporter, SkBitmapCache::Find(cachedBitmap.getGenerationID(), rect, &bm));
|
| +}
|
|
|