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