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

Side by Side Diff: content/common/host_discardable_shared_memory_manager_unittest.cc

Issue 871043003: base: Improve DiscardableSharedMemory support for ashmem. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add missing return statement Created 5 years, 11 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 unified diff | Download patch
« no previous file with comments | « content/child/child_discardable_shared_memory_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/common/host_discardable_shared_memory_manager.h" 5 #include "content/common/host_discardable_shared_memory_manager.h"
6 #include "testing/gtest/include/gtest/gtest.h" 6 #include "testing/gtest/include/gtest/gtest.h"
7 7
8 namespace content { 8 namespace content {
9 namespace { 9 namespace {
10 10
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle)); 71 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle));
72 72
73 TestDiscardableSharedMemory memory(shared_handle); 73 TestDiscardableSharedMemory memory(shared_handle);
74 bool rv = memory.Map(kDataSize); 74 bool rv = memory.Map(kDataSize);
75 ASSERT_TRUE(rv); 75 ASSERT_TRUE(rv);
76 76
77 memcpy(memory.memory(), data, kDataSize); 77 memcpy(memory.memory(), data, kDataSize);
78 memory.SetNow(base::Time::FromDoubleT(1)); 78 memory.SetNow(base::Time::FromDoubleT(1));
79 memory.Unlock(0, 0); 79 memory.Unlock(0, 0);
80 80
81 ASSERT_TRUE(memory.Lock(0, 0)); 81 ASSERT_EQ(base::DiscardableSharedMemory::SUCCESS, memory.Lock(0, 0));
82 EXPECT_EQ(memcmp(data, memory.memory(), kDataSize), 0); 82 EXPECT_EQ(memcmp(data, memory.memory(), kDataSize), 0);
83 memory.Unlock(0, 0); 83 memory.Unlock(0, 0);
84 } 84 }
85 85
86 TEST_F(HostDiscardableSharedMemoryManagerTest, Purge) { 86 TEST_F(HostDiscardableSharedMemoryManagerTest, Purge) {
87 const int kDataSize = 1024; 87 const int kDataSize = 1024;
88 88
89 base::SharedMemoryHandle shared_handle1; 89 base::SharedMemoryHandle shared_handle1;
90 manager_->AllocateLockedDiscardableSharedMemoryForChild( 90 manager_->AllocateLockedDiscardableSharedMemoryForChild(
91 base::GetCurrentProcessHandle(), kDataSize, &shared_handle1); 91 base::GetCurrentProcessHandle(), kDataSize, &shared_handle1);
(...skipping 23 matching lines...) Expand all
115 115
116 // Manager should not have to schedule another call to EnforceMemoryPolicy(). 116 // Manager should not have to schedule another call to EnforceMemoryPolicy().
117 manager_->SetNow(base::Time::FromDoubleT(3)); 117 manager_->SetNow(base::Time::FromDoubleT(3));
118 manager_->EnforceMemoryPolicy(); 118 manager_->EnforceMemoryPolicy();
119 EXPECT_FALSE(manager_->enforce_memory_policy_pending()); 119 EXPECT_FALSE(manager_->enforce_memory_policy_pending());
120 120
121 // Memory should still be resident. 121 // Memory should still be resident.
122 EXPECT_TRUE(memory1.IsMemoryResident()); 122 EXPECT_TRUE(memory1.IsMemoryResident());
123 EXPECT_TRUE(memory2.IsMemoryResident()); 123 EXPECT_TRUE(memory2.IsMemoryResident());
124 124
125 rv = memory1.Lock(0, 0); 125 auto lock_rv = memory1.Lock(0, 0);
126 EXPECT_TRUE(rv); 126 EXPECT_EQ(base::DiscardableSharedMemory::SUCCESS, lock_rv);
127 rv = memory2.Lock(0, 0); 127 lock_rv = memory2.Lock(0, 0);
128 EXPECT_TRUE(rv); 128 EXPECT_EQ(base::DiscardableSharedMemory::SUCCESS, lock_rv);
129 129
130 memory1.SetNow(base::Time::FromDoubleT(4)); 130 memory1.SetNow(base::Time::FromDoubleT(4));
131 memory1.Unlock(0, 0); 131 memory1.Unlock(0, 0);
132 memory2.SetNow(base::Time::FromDoubleT(5)); 132 memory2.SetNow(base::Time::FromDoubleT(5));
133 memory2.Unlock(0, 0); 133 memory2.Unlock(0, 0);
134 134
135 // Just enough memory for one allocation. 135 // Just enough memory for one allocation.
136 manager_->SetNow(base::Time::FromDoubleT(6)); 136 manager_->SetNow(base::Time::FromDoubleT(6));
137 manager_->SetMemoryLimit(memory2.mapped_size()); 137 manager_->SetMemoryLimit(memory2.mapped_size());
138 EXPECT_FALSE(manager_->enforce_memory_policy_pending()); 138 EXPECT_FALSE(manager_->enforce_memory_policy_pending());
139 139
140 // LRU allocation should still be resident. 140 // LRU allocation should still be resident.
141 EXPECT_FALSE(memory1.IsMemoryResident()); 141 EXPECT_FALSE(memory1.IsMemoryResident());
142 EXPECT_TRUE(memory2.IsMemoryResident()); 142 EXPECT_TRUE(memory2.IsMemoryResident());
143 143
144 rv = memory1.Lock(0, 0); 144 lock_rv = memory1.Lock(0, 0);
145 EXPECT_FALSE(rv); 145 EXPECT_EQ(base::DiscardableSharedMemory::FAILED, lock_rv);
146 rv = memory2.Lock(0, 0); 146 lock_rv = memory2.Lock(0, 0);
147 EXPECT_TRUE(rv); 147 EXPECT_EQ(base::DiscardableSharedMemory::SUCCESS, lock_rv);
148 } 148 }
149 149
150 TEST_F(HostDiscardableSharedMemoryManagerTest, EnforceMemoryPolicy) { 150 TEST_F(HostDiscardableSharedMemoryManagerTest, EnforceMemoryPolicy) {
151 const int kDataSize = 1024; 151 const int kDataSize = 1024;
152 152
153 base::SharedMemoryHandle shared_handle; 153 base::SharedMemoryHandle shared_handle;
154 manager_->AllocateLockedDiscardableSharedMemoryForChild( 154 manager_->AllocateLockedDiscardableSharedMemoryForChild(
155 base::GetCurrentProcessHandle(), kDataSize, &shared_handle); 155 base::GetCurrentProcessHandle(), kDataSize, &shared_handle);
156 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle)); 156 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle));
157 157
(...skipping 16 matching lines...) Expand all
174 174
175 memory.SetNow(base::Time::FromDoubleT(3)); 175 memory.SetNow(base::Time::FromDoubleT(3));
176 memory.Unlock(0, 0); 176 memory.Unlock(0, 0);
177 177
178 manager_->set_enforce_memory_policy_pending(false); 178 manager_->set_enforce_memory_policy_pending(false);
179 manager_->SetNow(base::Time::FromDoubleT(4)); 179 manager_->SetNow(base::Time::FromDoubleT(4));
180 manager_->EnforceMemoryPolicy(); 180 manager_->EnforceMemoryPolicy();
181 // Memory policy should have successfully been enforced. 181 // Memory policy should have successfully been enforced.
182 EXPECT_FALSE(manager_->enforce_memory_policy_pending()); 182 EXPECT_FALSE(manager_->enforce_memory_policy_pending());
183 183
184 EXPECT_FALSE(memory.Lock(0, 0)); 184 EXPECT_EQ(base::DiscardableSharedMemory::FAILED, memory.Lock(0, 0));
185 } 185 }
186 186
187 } // namespace 187 } // namespace
188 } // namespace content 188 } // namespace content
OLDNEW
« no previous file with comments | « content/child/child_discardable_shared_memory_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698