| /* | |
| * 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 "SkDiscardableMemory.h" | |
| #include "Test.h" | |
| DEF_TEST(DiscardableMemory, reporter) { | |
| const char testString[] = "HELLO, WORLD!"; | |
| const size_t len = sizeof(testString); | |
| SkAutoTDelete<SkDiscardableMemory> dm(SkDiscardableMemory::Create(len)); | |
| REPORTER_ASSERT(reporter, dm.get() != NULL); | |
| if (NULL == dm.get()) { | |
| return; | |
| } | |
| void* ptr = dm->data(); | |
| REPORTER_ASSERT(reporter, ptr != NULL); | |
| memcpy(ptr, testString, sizeof(testString)); | |
| dm->unlock(); | |
| bool success = dm->lock(); | |
| REPORTER_ASSERT(reporter, success); | |
| if (!success) { | |
| return; | |
| } | |
| ptr = dm->data(); | |
| REPORTER_ASSERT(reporter, 0 == memcmp(ptr, testString, len)); | |
| dm->unlock(); | |
| } |