test_memory.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "ppapi/tests/test_memory.h"
6
7#include "ppapi/c/dev/ppb_testing_dev.h"
8#include "ppapi/c/dev/ppb_memory_dev.h"
9#include "ppapi/cpp/instance.h"
10#include "ppapi/cpp/module.h"
11#include "ppapi/tests/testing_instance.h"
12
13namespace {
14
15size_t kTestBufferSize = 1000;
16
17}  // namespace
18
19REGISTER_TEST_CASE(Memory);
20
21bool TestMemory::Init() {
22  memory_dev_interface_ = static_cast<const PPB_Memory_Dev*>(
23      pp::Module::Get()->GetBrowserInterface(PPB_MEMORY_DEV_INTERFACE));
24  return memory_dev_interface_ && CheckTestingInterface();
25}
26
27void TestMemory::RunTests(const std::string& filter) {
28  RUN_TEST(MemAlloc, filter);
29  RUN_TEST(NullMemFree, filter);
30}
31
32std::string TestMemory::TestMemAlloc() {
33  char* buffer = static_cast<char*>(
34      memory_dev_interface_->MemAlloc(kTestBufferSize));
35  // Touch a couple of locations.  Failure will crash the test.
36  buffer[0] = '1';
37  buffer[kTestBufferSize - 1] = '1';
38  memory_dev_interface_->MemFree(buffer);
39
40  PASS();
41}
42
43std::string TestMemory::TestNullMemFree() {
44  // Failure crashes the test.
45  memory_dev_interface_->MemFree(NULL);
46
47  PASS();
48}
49
50