/* * Copyright 2013 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "SkDiscardableMemoryPool.h" #include "Test.h" #include "TestClassDef.h" DEF_TEST(DiscardableMemoryPool, reporter) { SkAutoTUnref<SkDiscardableMemoryPool> pool( SkNEW_ARGS(SkDiscardableMemoryPool, (1, NULL))); pool->setRAMBudget(3); REPORTER_ASSERT(reporter, 0 == pool->getRAMUsed()); SkAutoTDelete<SkDiscardableMemory> dm1(pool->create(100)); REPORTER_ASSERT(reporter, dm1->data() != NULL); REPORTER_ASSERT(reporter, 100 == pool->getRAMUsed()); dm1->unlock(); REPORTER_ASSERT(reporter, 0 == pool->getRAMUsed()); REPORTER_ASSERT(reporter, !dm1->lock()); SkAutoTDelete<SkDiscardableMemory> dm2(pool->create(200)); REPORTER_ASSERT(reporter, 200 == pool->getRAMUsed()); pool->setRAMBudget(400); dm2->unlock(); REPORTER_ASSERT(reporter, 200 == pool->getRAMUsed()); REPORTER_ASSERT(reporter, dm2->lock()); dm2->unlock(); pool->dumpPool(); REPORTER_ASSERT(reporter, !dm2->lock()); REPORTER_ASSERT(reporter, 0 == pool->getRAMUsed()); }