blob: 637dedec589af7aeb5586631c030b6292f86479e [file] [log] [blame]
halcanary@google.combc55eec2013-12-10 18:33:07 +00001/*
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#include "TestClassDef.h"
12
13DEF_TEST(DiscardableMemory, reporter) {
14 const char testString[] = "HELLO, WORLD!";
15 const size_t len = sizeof(testString);
16 SkAutoTDelete<SkDiscardableMemory> dm(SkDiscardableMemory::Create(len));
17 REPORTER_ASSERT(reporter, dm.get() != NULL);
18 if (NULL == dm.get()) {
19 return;
20 }
21 void* ptr = dm->data();
22 REPORTER_ASSERT(reporter, ptr != NULL);
23 memcpy(ptr, testString, sizeof(testString));
24 dm->unlock();
25 bool success = dm->lock();
26 REPORTER_ASSERT(reporter, success);
27 if (!success) {
28 return;
29 }
30 ptr = dm->data();
31 REPORTER_ASSERT(reporter, 0 == memcmp(ptr, testString, len));
32 dm->unlock();
33}