| /* |
| * 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() != nullptr); |
| if (nullptr == dm.get()) { |
| return; |
| } |
| void* ptr = dm->data(); |
| REPORTER_ASSERT(reporter, ptr != nullptr); |
| 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(); |
| } |