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 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 26 void TestMemory::RunTests(const std::string& filter) { 27 RUN_TEST(MemAlloc, filter); 28 RUN_TEST(NullMemFree, filter); 29 } 30 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 42 std::string TestMemory::TestNullMemFree() { 43 // Failure crashes the test. 44 memory_dev_interface_->MemFree(NULL); 45 46 PASS(); 47 } 48 49