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 
DEF_TEST(DiscardableMemory,reporter)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() != NULL);
17     if (NULL == dm.get()) {
18         return;
19     }
20     void* ptr = dm->data();
21     REPORTER_ASSERT(reporter, ptr != NULL);
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