/* * Copyright (C) 2013 Google Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "third_party/blink/renderer/platform/wtf/pod_free_list_arena.h" #include "base/memory/scoped_refptr.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/platform/wtf/hash_set.h" #include "third_party/blink/renderer/platform/wtf/pod_arena_test_helpers.h" #include "third_party/blink/renderer/platform/wtf/vector.h" namespace WTF { TrackedAllocator; namespace { // A couple of simple structs to allocate. struct TestClass1 { … }; struct TestClass2 { … }; } // anonymous namespace class PODFreeListArenaTest : public testing::Test { … }; // Make sure the arena can successfully allocate from more than one // region. TEST_F(PODFreeListArenaTest, CanAllocateFromMoreThanOneRegion) { … } // Make sure the arena frees all allocated regions during destruction. TEST_F(PODFreeListArenaTest, FreesAllAllocatedRegions) { … } // Make sure the arena runs constructors of the objects allocated within. TEST_F(PODFreeListArenaTest, RunsConstructorsOnNewObjects) { … } // Make sure the arena runs constructors of the objects allocated within. TEST_F(PODFreeListArenaTest, RunsConstructorsOnReusedObjects) { … } // Make sure freeObject puts the object in the free list. TEST_F(PODFreeListArenaTest, AddsFreedObjectsToFreedList) { … } // Make sure allocations use previously freed memory. TEST_F(PODFreeListArenaTest, ReusesPreviouslyFreedObjects) { … } } // namespace WTF