Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(287)

Unified Diff: content/common/discardable_shared_memory_heap_unittest.cc

Issue 1009203004: content: Add DeletedDiscardableSharedMemory IPC. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 6a01b27b06b03e019fa47b67ea9c3633c8e3ac1e..5297ded0cc49a2fb903189feb1bfd2683cda8957 100644
--- a/content/common/discardable_shared_memory_heap_unittest.cc
+++ b/content/common/discardable_shared_memory_heap_unittest.cc
@@ -4,6 +4,7 @@
#include "content/common/discardable_shared_memory_heap.h"
+#include "base/bind.h"
#include "base/memory/discardable_shared_memory.h"
#include "base/process/process_metrics.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -11,6 +12,9 @@
namespace content {
namespace {
+void NullTask() {
+}
+
TEST(DiscardableSharedMemoryHeapTest, Basic) {
size_t block_size = base::GetPageSize();
DiscardableSharedMemoryHeap heap(block_size);
@@ -33,7 +37,7 @@ TEST(DiscardableSharedMemoryHeapTest, Basic) {
// Create new span for memory.
scoped_ptr<DiscardableSharedMemoryHeap::Span> new_span(
- heap.Grow(memory.Pass(), memory_size));
+ heap.Grow(memory.Pass(), memory_size, base::Bind(NullTask)));
// Size should match |memory_size|.
EXPECT_EQ(memory_size, heap.GetSize());
@@ -76,7 +80,7 @@ TEST(DiscardableSharedMemoryHeapTest, SplitAndMerge) {
new base::DiscardableSharedMemory);
ASSERT_TRUE(memory->CreateAndMap(memory_size));
scoped_ptr<DiscardableSharedMemoryHeap::Span> new_span(
- heap.Grow(memory.Pass(), memory_size));
+ heap.Grow(memory.Pass(), memory_size, base::Bind(NullTask)));
// Split span into two.
scoped_ptr<DiscardableSharedMemoryHeap::Span> leftover =
@@ -131,7 +135,7 @@ TEST(DiscardableSharedMemoryHeapTest, MergeSingleBlockSpan) {
new base::DiscardableSharedMemory);
ASSERT_TRUE(memory->CreateAndMap(memory_size));
scoped_ptr<DiscardableSharedMemoryHeap::Span> new_span(
- heap.Grow(memory.Pass(), memory_size));
+ heap.Grow(memory.Pass(), memory_size, base::Bind(NullTask)));
// Split span into two.
scoped_ptr<DiscardableSharedMemoryHeap::Span> leftover =
@@ -152,7 +156,8 @@ TEST(DiscardableSharedMemoryHeapTest, Grow) {
scoped_ptr<base::DiscardableSharedMemory> memory1(
new base::DiscardableSharedMemory);
ASSERT_TRUE(memory1->CreateAndMap(block_size));
- heap.MergeIntoFreeLists(heap.Grow(memory1.Pass(), block_size).Pass());
+ heap.MergeIntoFreeLists(
+ heap.Grow(memory1.Pass(), block_size, base::Bind(NullTask)).Pass());
// Remove a span from free lists.
scoped_ptr<DiscardableSharedMemoryHeap::Span> span1 =
@@ -166,7 +171,8 @@ TEST(DiscardableSharedMemoryHeapTest, Grow) {
scoped_ptr<base::DiscardableSharedMemory> memory2(
new base::DiscardableSharedMemory);
ASSERT_TRUE(memory2->CreateAndMap(block_size));
- heap.MergeIntoFreeLists(heap.Grow(memory2.Pass(), block_size).Pass());
+ heap.MergeIntoFreeLists(
+ heap.Grow(memory2.Pass(), block_size, base::Bind(NullTask)).Pass());
// Memory should now be available.
scoped_ptr<DiscardableSharedMemoryHeap::Span> span2 =
@@ -186,7 +192,7 @@ TEST(DiscardableSharedMemoryHeapTest, ReleaseFreeMemory) {
new base::DiscardableSharedMemory);
ASSERT_TRUE(memory->CreateAndMap(block_size));
scoped_ptr<DiscardableSharedMemoryHeap::Span> span =
- heap.Grow(memory.Pass(), block_size);
+ heap.Grow(memory.Pass(), block_size, base::Bind(NullTask));
// Free lists should be empty.
EXPECT_EQ(0u, heap.GetSizeOfFreeLists());
@@ -212,7 +218,7 @@ TEST(DiscardableSharedMemoryHeapTest, ReleasePurgedMemory) {
new base::DiscardableSharedMemory);
ASSERT_TRUE(memory->CreateAndMap(block_size));
scoped_ptr<DiscardableSharedMemoryHeap::Span> span =
- heap.Grow(memory.Pass(), block_size);
+ heap.Grow(memory.Pass(), block_size, base::Bind(NullTask));
// Unlock memory so it can be purged.
span->shared_memory()->Unlock(0, 0);
@@ -239,7 +245,8 @@ TEST(DiscardableSharedMemoryHeapTest, Slack) {
scoped_ptr<base::DiscardableSharedMemory> memory(
new base::DiscardableSharedMemory);
ASSERT_TRUE(memory->CreateAndMap(memory_size));
- heap.MergeIntoFreeLists(heap.Grow(memory.Pass(), memory_size).Pass());
+ heap.MergeIntoFreeLists(
+ heap.Grow(memory.Pass(), memory_size, base::Bind(NullTask)).Pass());
// No free span that is less or equal to 3 + 1.
EXPECT_FALSE(heap.SearchFreeLists(3, 1));
@@ -257,5 +264,27 @@ TEST(DiscardableSharedMemoryHeapTest, Slack) {
heap.MergeIntoFreeLists(span.Pass());
}
+void OnDeleted(bool* deleted) {
+ *deleted = true;
+}
+
+TEST(DiscardableSharedMemoryHeapTest, DeletedCallback) {
+ size_t block_size = base::GetPageSize();
+ DiscardableSharedMemoryHeap heap(block_size);
+
+ scoped_ptr<base::DiscardableSharedMemory> memory(
+ new base::DiscardableSharedMemory);
+ ASSERT_TRUE(memory->CreateAndMap(block_size));
+ bool deleted = false;
+ scoped_ptr<DiscardableSharedMemoryHeap::Span> span =
+ heap.Grow(memory.Pass(), block_size,
+ base::Bind(OnDeleted, base::Unretained(&deleted)));
+
+ heap.MergeIntoFreeLists(span.Pass());
+ heap.ReleaseFreeMemory();
+
+ EXPECT_TRUE(deleted);
+}
+
} // namespace
} // namespace content
« no previous file with comments | « content/common/discardable_shared_memory_heap_perftest.cc ('k') | content/common/host_discardable_shared_memory_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698