| Index: content/common/discardable_shared_memory_heap_unittest.cc
|
| diff --git a/content/common/discardable_shared_memory_heap_unittest.cc b/content/common/discardable_shared_memory_heap_unittest.cc
|
| index a13604f025ba16147d441a2650be37f50e830e01..130b63d48aedf38410a409b9fc5d58e68e536216 100644
|
| --- a/content/common/discardable_shared_memory_heap_unittest.cc
|
| +++ b/content/common/discardable_shared_memory_heap_unittest.cc
|
| @@ -11,12 +11,16 @@
|
| namespace content {
|
| namespace {
|
|
|
| -class DiscardableSharedMemoryHeapTest : public testing::Test {};
|
| -
|
| -TEST_F(DiscardableSharedMemoryHeapTest, Basic) {
|
| +TEST(DiscardableSharedMemoryHeapTest, Basic) {
|
| size_t block_size = base::GetPageSize();
|
| DiscardableSharedMemoryHeap heap(block_size);
|
|
|
| + // Initial size should be 0.
|
| + EXPECT_EQ(0u, heap.GetSize());
|
| +
|
| + // Initial free list size should be 0.
|
| + EXPECT_EQ(0u, heap.GetFreeListSize());
|
| +
|
| // Free list is initially empty.
|
| EXPECT_FALSE(heap.SearchFreeList(1));
|
|
|
| @@ -31,12 +35,21 @@ TEST_F(DiscardableSharedMemoryHeapTest, Basic) {
|
| scoped_ptr<DiscardableSharedMemoryHeap::Span> new_span(
|
| heap.Grow(memory.Pass(), memory_size));
|
|
|
| + // Size should match |memory_size|.
|
| + EXPECT_EQ(memory_size, heap.GetSize());
|
| +
|
| + // Free list size should still be 0.
|
| + EXPECT_EQ(0u, heap.GetFreeListSize());
|
| +
|
| // Free list should still be empty as |new_span| is currently in use.
|
| EXPECT_FALSE(heap.SearchFreeList(1));
|
|
|
| // Done using |new_span|. Merge it into the free list.
|
| heap.MergeIntoFreeList(new_span.Pass());
|
|
|
| + // Free list size should now match |memory_size|.
|
| + EXPECT_EQ(memory_size, heap.GetFreeListSize());
|
| +
|
| // Free list should not contain a span that is larger than kBlocks.
|
| EXPECT_FALSE(heap.SearchFreeList(kBlocks + 1));
|
|
|
| @@ -52,7 +65,7 @@ TEST_F(DiscardableSharedMemoryHeapTest, Basic) {
|
| heap.MergeIntoFreeList(span.Pass());
|
| }
|
|
|
| -TEST_F(DiscardableSharedMemoryHeapTest, SplitAndMerge) {
|
| +TEST(DiscardableSharedMemoryHeapTest, SplitAndMerge) {
|
| size_t block_size = base::GetPageSize();
|
| DiscardableSharedMemoryHeap heap(block_size);
|
|
|
| @@ -105,7 +118,7 @@ TEST_F(DiscardableSharedMemoryHeapTest, SplitAndMerge) {
|
| heap.MergeIntoFreeList(large_span.Pass());
|
| }
|
|
|
| -TEST_F(DiscardableSharedMemoryHeapTest, MergeSingleBlockSpan) {
|
| +TEST(DiscardableSharedMemoryHeapTest, MergeSingleBlockSpan) {
|
| size_t block_size = base::GetPageSize();
|
| DiscardableSharedMemoryHeap heap(block_size);
|
|
|
| @@ -130,7 +143,7 @@ TEST_F(DiscardableSharedMemoryHeapTest, MergeSingleBlockSpan) {
|
| heap.MergeIntoFreeList(leftover.Pass());
|
| }
|
|
|
| -TEST_F(DiscardableSharedMemoryHeapTest, Grow) {
|
| +TEST(DiscardableSharedMemoryHeapTest, Grow) {
|
| size_t block_size = base::GetPageSize();
|
| DiscardableSharedMemoryHeap heap(block_size);
|
|
|
| @@ -161,7 +174,33 @@ TEST_F(DiscardableSharedMemoryHeapTest, Grow) {
|
| heap.MergeIntoFreeList(span2.Pass());
|
| }
|
|
|
| -TEST_F(DiscardableSharedMemoryHeapTest, ReleaseFreeMemory) {
|
| +TEST(DiscardableSharedMemoryHeapTest, ReleaseFreeMemory) {
|
| + size_t block_size = base::GetPageSize();
|
| + DiscardableSharedMemoryHeap heap(block_size);
|
| +
|
| + scoped_ptr<base::DiscardableSharedMemory> memory(
|
| + new base::DiscardableSharedMemory);
|
| + ASSERT_TRUE(memory->CreateAndMap(block_size));
|
| + scoped_ptr<DiscardableSharedMemoryHeap::Span> span =
|
| + heap.Grow(memory.Pass(), block_size);
|
| +
|
| + // Free list should be empty.
|
| + EXPECT_EQ(0u, heap.GetFreeListSize());
|
| +
|
| + heap.ReleaseFreeMemory();
|
| +
|
| + // Size should still match |block_size|.
|
| + EXPECT_EQ(block_size, heap.GetSize());
|
| +
|
| + heap.MergeIntoFreeList(span.Pass());
|
| + heap.ReleaseFreeMemory();
|
| +
|
| + // Memory should have been released.
|
| + EXPECT_EQ(0u, heap.GetSize());
|
| + EXPECT_EQ(0u, heap.GetFreeListSize());
|
| +}
|
| +
|
| +TEST(DiscardableSharedMemoryHeapTest, ReleasePurgedMemory) {
|
| size_t block_size = base::GetPageSize();
|
| DiscardableSharedMemoryHeap heap(block_size);
|
|
|
| @@ -177,10 +216,13 @@ TEST_F(DiscardableSharedMemoryHeapTest, ReleaseFreeMemory) {
|
| // Purge and release shared memory.
|
| bool rv = span->shared_memory()->Purge(base::Time::Now());
|
| EXPECT_TRUE(rv);
|
| - heap.ReleaseFreeMemory();
|
| + heap.ReleasePurgedMemory();
|
|
|
| // Shared memory backing for |span| should be gone.
|
| EXPECT_FALSE(span->shared_memory());
|
| +
|
| + // Size should be 0.
|
| + EXPECT_EQ(0u, heap.GetSize());
|
| }
|
|
|
| } // namespace
|
|
|