• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_memory_dev.h"
8 #include "ppapi/cpp/instance.h"
9 #include "ppapi/cpp/module.h"
10 #include "ppapi/tests/testing_instance.h"
11 
12 namespace {
13 
14 size_t kTestBufferSize = 1000;
15 
16 }  // namespace
17 
18 REGISTER_TEST_CASE(Memory);
19 
Init()20 bool TestMemory::Init() {
21   memory_dev_interface_ = static_cast<const PPB_Memory_Dev*>(
22       pp::Module::Get()->GetBrowserInterface(PPB_MEMORY_DEV_INTERFACE));
23   return memory_dev_interface_ && CheckTestingInterface();
24 }
25 
RunTests(const std::string & filter)26 void TestMemory::RunTests(const std::string& filter) {
27   RUN_TEST(MemAlloc, filter);
28   RUN_TEST(NullMemFree, filter);
29 }
30 
TestMemAlloc()31 std::string TestMemory::TestMemAlloc() {
32   char* buffer = static_cast<char*>(
33       memory_dev_interface_->MemAlloc(kTestBufferSize));
34   // Touch a couple of locations.  Failure will crash the test.
35   buffer[0] = '1';
36   buffer[kTestBufferSize - 1] = '1';
37   memory_dev_interface_->MemFree(buffer);
38 
39   PASS();
40 }
41 
TestNullMemFree()42 std::string TestMemory::TestNullMemFree() {
43   // Failure crashes the test.
44   memory_dev_interface_->MemFree(NULL);
45 
46   PASS();
47 }
48 
49