Home | History | Annotate | Download | only in tests
      1 /*
      2  * Copyright 2013 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 #include "SkDiscardableMemoryPool.h"
      8 
      9 #include "Test.h"
     10 
     11 DEF_TEST(DiscardableMemoryPool, reporter) {
     12     SkAutoTUnref<SkDiscardableMemoryPool> pool(
     13         SkDiscardableMemoryPool::Create(1, nullptr));
     14     pool->setRAMBudget(3);
     15     REPORTER_ASSERT(reporter, 0 == pool->getRAMUsed());
     16 
     17     SkAutoTDelete<SkDiscardableMemory> dm1(pool->create(100));
     18     REPORTER_ASSERT(reporter, dm1->data() != nullptr);
     19     REPORTER_ASSERT(reporter, 100 == pool->getRAMUsed());
     20     dm1->unlock();
     21     REPORTER_ASSERT(reporter, 0 == pool->getRAMUsed());
     22     REPORTER_ASSERT(reporter, !dm1->lock());
     23 
     24 
     25     SkAutoTDelete<SkDiscardableMemory> dm2(pool->create(200));
     26     REPORTER_ASSERT(reporter, 200 == pool->getRAMUsed());
     27     pool->setRAMBudget(400);
     28     dm2->unlock();
     29     REPORTER_ASSERT(reporter, 200 == pool->getRAMUsed());
     30     REPORTER_ASSERT(reporter, dm2->lock());
     31     dm2->unlock();
     32     pool->dumpPool();
     33     REPORTER_ASSERT(reporter, !dm2->lock());
     34     REPORTER_ASSERT(reporter, 0 == pool->getRAMUsed());
     35 }
     36