| Index: tests/ResourceCacheTest.cpp
|
| diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp
|
| index d62d09d9335749fee24486ca30baceb5dd164c0e..f9f94d1b274322eb35acd4806850855d4f44a7fc 100644
|
| --- a/tests/ResourceCacheTest.cpp
|
| +++ b/tests/ResourceCacheTest.cpp
|
| @@ -246,6 +246,37 @@
|
|
|
| REPORTER_ASSERT(reporter, 201 == cache.getCachedResourceBytes());
|
| REPORTER_ASSERT(reporter, 1 == cache.getCachedResourceCount());
|
| + }
|
| +
|
| + // Test changing the size of an exclusively-held resource.
|
| + {
|
| + GrResourceCache cache(2, 300);
|
| +
|
| + TestResource* a = new TestResource(context->getGpu(), 100);
|
| + cache.addResource(key1, a);
|
| + cache.makeExclusive(a->getCacheEntry());
|
| +
|
| + TestResource* b = new TestResource(context->getGpu(), 100);
|
| + cache.addResource(key2, b);
|
| + b->unref();
|
| +
|
| + REPORTER_ASSERT(reporter, 200 == cache.getCachedResourceBytes());
|
| + REPORTER_ASSERT(reporter, 2 == cache.getCachedResourceCount());
|
| + REPORTER_ASSERT(reporter, NULL == cache.find(key1));
|
| +
|
| + a->setSize(200);
|
| +
|
| + REPORTER_ASSERT(reporter, 300 == cache.getCachedResourceBytes());
|
| + REPORTER_ASSERT(reporter, 2 == cache.getCachedResourceCount());
|
| + // Internal resource cache validation will test the detached size (debug mode only).
|
| +
|
| + cache.makeNonExclusive(a->getCacheEntry());
|
| + a->unref();
|
| +
|
| + REPORTER_ASSERT(reporter, 300 == cache.getCachedResourceBytes());
|
| + REPORTER_ASSERT(reporter, 2 == cache.getCachedResourceCount());
|
| + REPORTER_ASSERT(reporter, cache.find(key1));
|
| + // Internal resource cache validation will test the detached size (debug mode only).
|
| }
|
| }
|
|
|
|
|