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 8 #include "SkDiscardableMemory.h" 9 10 #include "Test.h" 11 12 DEF_TEST(DiscardableMemory, reporter) { 13 const char testString[] = "HELLO, WORLD!"; 14 const size_t len = sizeof(testString); 15 SkAutoTDelete<SkDiscardableMemory> dm(SkDiscardableMemory::Create(len)); 16 REPORTER_ASSERT(reporter, dm.get() != nullptr); 17 if (nullptr == dm.get()) { 18 return; 19 } 20 void* ptr = dm->data(); 21 REPORTER_ASSERT(reporter, ptr != nullptr); 22 memcpy(ptr, testString, sizeof(testString)); 23 dm->unlock(); 24 bool success = dm->lock(); 25 REPORTER_ASSERT(reporter, success); 26 if (!success) { 27 return; 28 } 29 ptr = dm->data(); 30 REPORTER_ASSERT(reporter, 0 == memcmp(ptr, testString, len)); 31 dm->unlock(); 32 } 33