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 12namespace { 13 14size_t kTestBufferSize = 1000; 15 16} // namespace 17 18REGISTER_TEST_CASE(Memory); 19 20bool 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 26void TestMemory::RunTests(const std::string& filter) { 27 RUN_TEST(MemAlloc, filter); 28 RUN_TEST(NullMemFree, filter); 29} 30 31std::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 42std::string TestMemory::TestNullMemFree() { 43 // Failure crashes the test. 44 memory_dev_interface_->MemFree(NULL); 45 46 PASS(); 47} 48 49