| Index: ppapi/tests/test_memory.cc
|
| diff --git a/ppapi/tests/test_memory.cc b/ppapi/tests/test_memory.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1d44db47d4b662d884389e3284d4da3b2880512c
|
| --- /dev/null
|
| +++ b/ppapi/tests/test_memory.cc
|
| @@ -0,0 +1,57 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "ppapi/tests/test_memory.h"
|
| +
|
| +#include "ppapi/c/dev/ppb_testing_dev.h"
|
| +#include "ppapi/c/dev/ppb_memory_dev.h"
|
| +#include "ppapi/cpp/instance.h"
|
| +#include "ppapi/cpp/module.h"
|
| +#include "ppapi/tests/testing_instance.h"
|
| +
|
| +namespace {
|
| +
|
| +size_t kTestBufferSize = 1000;
|
| +
|
| +} // namespace
|
| +
|
| +REGISTER_TEST_CASE(Memory);
|
| +
|
| +bool TestMemory::Init() {
|
| + memory_dev_interface_ = static_cast<const PPB_Memory_Dev*>(
|
| + pp::Module::Get()->GetBrowserInterface(PPB_MEMORY_DEV_INTERFACE));
|
| + return memory_dev_interface_ && InitTestingInterface();
|
| +}
|
| +
|
| +void TestMemory::RunTest() {
|
| + RUN_TEST(MemAlloc);
|
| + RUN_TEST(NullMemFree);
|
| +}
|
| +
|
| +std::string TestMemory::TestMemAlloc() {
|
| + uint32_t before_object = testing_interface_->GetLiveObjectsForInstance(
|
| + instance_->pp_instance());
|
| + {
|
| + char* buffer = static_cast<char*>(
|
| + memory_dev_interface_->MemAlloc(kTestBufferSize));
|
| + // Touch a couple of locations. Failure will crash the test.
|
| + buffer[0] = '1';
|
| + buffer[kTestBufferSize - 1] = '1';
|
| + memory_dev_interface_->MemFree(buffer);
|
| + }
|
| +
|
| + // Make sure nothing leaked.
|
| + ASSERT_TRUE(testing_interface_->GetLiveObjectsForInstance(
|
| + instance_->pp_instance()) == before_object);
|
| +
|
| + PASS();
|
| +}
|
| +
|
| +std::string TestMemory::TestNullMemFree() {
|
| + // Failure crashes the test.
|
| + memory_dev_interface_->MemFree(NULL);
|
| +
|
| + PASS();
|
| +}
|
| +
|
|
|