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

Side by Side Diff: components/discardable_memory/service/discardable_shared_memory_manager_unittest.cc

Issue 2545523007: Revert of discardable_memory: Using mojo IPC to replace Chrome IPC (Closed)
Patch Set: Created 4 years 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
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 #include "components/discardable_memory/service/discardable_shared_memory_manage r.h" 4 #include "components/discardable_memory/service/discardable_shared_memory_manage r.h"
5 5
6 #include <stddef.h> 6 #include <stddef.h>
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 std::unique_ptr<TestDiscardableSharedMemoryManager> manager_; 70 std::unique_ptr<TestDiscardableSharedMemoryManager> manager_;
71 }; 71 };
72 72
73 TEST_F(DiscardableSharedMemoryManagerTest, AllocateForClient) { 73 TEST_F(DiscardableSharedMemoryManagerTest, AllocateForClient) {
74 const int kDataSize = 1024; 74 const int kDataSize = 1024;
75 uint8_t data[kDataSize]; 75 uint8_t data[kDataSize];
76 memset(data, 0x80, kDataSize); 76 memset(data, 0x80, kDataSize);
77 77
78 base::SharedMemoryHandle shared_handle; 78 base::SharedMemoryHandle shared_handle;
79 manager_->AllocateLockedDiscardableSharedMemoryForClient( 79 manager_->AllocateLockedDiscardableSharedMemoryForClient(
80 kInvalidUniqueID, kDataSize, 0, &shared_handle); 80 base::GetCurrentProcessHandle(), kInvalidUniqueID, kDataSize, 0,
81 &shared_handle);
81 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle)); 82 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle));
82 83
83 TestDiscardableSharedMemory memory(shared_handle); 84 TestDiscardableSharedMemory memory(shared_handle);
84 bool rv = memory.Map(kDataSize); 85 bool rv = memory.Map(kDataSize);
85 ASSERT_TRUE(rv); 86 ASSERT_TRUE(rv);
86 87
87 memcpy(memory.memory(), data, kDataSize); 88 memcpy(memory.memory(), data, kDataSize);
88 memory.SetNow(base::Time::FromDoubleT(1)); 89 memory.SetNow(base::Time::FromDoubleT(1));
89 memory.Unlock(0, 0); 90 memory.Unlock(0, 0);
90 91
91 ASSERT_EQ(base::DiscardableSharedMemory::SUCCESS, memory.Lock(0, 0)); 92 ASSERT_EQ(base::DiscardableSharedMemory::SUCCESS, memory.Lock(0, 0));
92 EXPECT_EQ(memcmp(data, memory.memory(), kDataSize), 0); 93 EXPECT_EQ(memcmp(data, memory.memory(), kDataSize), 0);
93 memory.Unlock(0, 0); 94 memory.Unlock(0, 0);
94 } 95 }
95 96
96 TEST_F(DiscardableSharedMemoryManagerTest, Purge) { 97 TEST_F(DiscardableSharedMemoryManagerTest, Purge) {
97 const int kDataSize = 1024; 98 const int kDataSize = 1024;
98 99
99 base::SharedMemoryHandle shared_handle1; 100 base::SharedMemoryHandle shared_handle1;
100 manager_->AllocateLockedDiscardableSharedMemoryForClient( 101 manager_->AllocateLockedDiscardableSharedMemoryForClient(
101 kInvalidUniqueID, kDataSize, 1, &shared_handle1); 102 base::GetCurrentProcessHandle(), kInvalidUniqueID, kDataSize, 1,
103 &shared_handle1);
102 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle1)); 104 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle1));
103 105
104 TestDiscardableSharedMemory memory1(shared_handle1); 106 TestDiscardableSharedMemory memory1(shared_handle1);
105 bool rv = memory1.Map(kDataSize); 107 bool rv = memory1.Map(kDataSize);
106 ASSERT_TRUE(rv); 108 ASSERT_TRUE(rv);
107 109
108 base::SharedMemoryHandle shared_handle2; 110 base::SharedMemoryHandle shared_handle2;
109 manager_->AllocateLockedDiscardableSharedMemoryForClient( 111 manager_->AllocateLockedDiscardableSharedMemoryForClient(
110 kInvalidUniqueID, kDataSize, 2, &shared_handle2); 112 base::GetCurrentProcessHandle(), kInvalidUniqueID, kDataSize, 2,
113 &shared_handle2);
111 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle2)); 114 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle2));
112 115
113 TestDiscardableSharedMemory memory2(shared_handle2); 116 TestDiscardableSharedMemory memory2(shared_handle2);
114 rv = memory2.Map(kDataSize); 117 rv = memory2.Map(kDataSize);
115 ASSERT_TRUE(rv); 118 ASSERT_TRUE(rv);
116 119
117 // Enough memory for both allocations. 120 // Enough memory for both allocations.
118 manager_->SetNow(base::Time::FromDoubleT(1)); 121 manager_->SetNow(base::Time::FromDoubleT(1));
119 manager_->SetMemoryLimit(memory1.mapped_size() + memory2.mapped_size()); 122 manager_->SetMemoryLimit(memory1.mapped_size() + memory2.mapped_size());
120 123
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 EXPECT_EQ(base::DiscardableSharedMemory::FAILED, lock_rv); 158 EXPECT_EQ(base::DiscardableSharedMemory::FAILED, lock_rv);
156 lock_rv = memory2.Lock(0, 0); 159 lock_rv = memory2.Lock(0, 0);
157 EXPECT_EQ(base::DiscardableSharedMemory::SUCCESS, lock_rv); 160 EXPECT_EQ(base::DiscardableSharedMemory::SUCCESS, lock_rv);
158 } 161 }
159 162
160 TEST_F(DiscardableSharedMemoryManagerTest, EnforceMemoryPolicy) { 163 TEST_F(DiscardableSharedMemoryManagerTest, EnforceMemoryPolicy) {
161 const int kDataSize = 1024; 164 const int kDataSize = 1024;
162 165
163 base::SharedMemoryHandle shared_handle; 166 base::SharedMemoryHandle shared_handle;
164 manager_->AllocateLockedDiscardableSharedMemoryForClient( 167 manager_->AllocateLockedDiscardableSharedMemoryForClient(
165 kInvalidUniqueID, kDataSize, 0, &shared_handle); 168 base::GetCurrentProcessHandle(), kInvalidUniqueID, kDataSize, 0,
169 &shared_handle);
166 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle)); 170 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle));
167 171
168 TestDiscardableSharedMemory memory(shared_handle); 172 TestDiscardableSharedMemory memory(shared_handle);
169 bool rv = memory.Map(kDataSize); 173 bool rv = memory.Map(kDataSize);
170 ASSERT_TRUE(rv); 174 ASSERT_TRUE(rv);
171 175
172 // Not enough memory for one allocation. 176 // Not enough memory for one allocation.
173 manager_->SetNow(base::Time::FromDoubleT(1)); 177 manager_->SetNow(base::Time::FromDoubleT(1));
174 manager_->SetMemoryLimit(memory.mapped_size() - 1); 178 manager_->SetMemoryLimit(memory.mapped_size() - 1);
175 // We need to enforce memory policy as our memory usage is currently above 179 // We need to enforce memory policy as our memory usage is currently above
(...skipping 17 matching lines...) Expand all
193 197
194 EXPECT_EQ(base::DiscardableSharedMemory::FAILED, memory.Lock(0, 0)); 198 EXPECT_EQ(base::DiscardableSharedMemory::FAILED, memory.Lock(0, 0));
195 } 199 }
196 200
197 TEST_F(DiscardableSharedMemoryManagerTest, 201 TEST_F(DiscardableSharedMemoryManagerTest,
198 ReduceMemoryAfterSegmentHasBeenDeleted) { 202 ReduceMemoryAfterSegmentHasBeenDeleted) {
199 const int kDataSize = 1024; 203 const int kDataSize = 1024;
200 204
201 base::SharedMemoryHandle shared_handle1; 205 base::SharedMemoryHandle shared_handle1;
202 manager_->AllocateLockedDiscardableSharedMemoryForClient( 206 manager_->AllocateLockedDiscardableSharedMemoryForClient(
203 kInvalidUniqueID, kDataSize, 1, &shared_handle1); 207 base::GetCurrentProcessHandle(), kInvalidUniqueID, kDataSize, 1,
208 &shared_handle1);
204 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle1)); 209 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle1));
205 210
206 TestDiscardableSharedMemory memory1(shared_handle1); 211 TestDiscardableSharedMemory memory1(shared_handle1);
207 bool rv = memory1.Map(kDataSize); 212 bool rv = memory1.Map(kDataSize);
208 ASSERT_TRUE(rv); 213 ASSERT_TRUE(rv);
209 214
210 base::SharedMemoryHandle shared_handle2; 215 base::SharedMemoryHandle shared_handle2;
211 manager_->AllocateLockedDiscardableSharedMemoryForClient( 216 manager_->AllocateLockedDiscardableSharedMemoryForClient(
212 kInvalidUniqueID, kDataSize, 2, &shared_handle2); 217 base::GetCurrentProcessHandle(), kInvalidUniqueID, kDataSize, 2,
218 &shared_handle2);
213 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle2)); 219 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle2));
214 220
215 TestDiscardableSharedMemory memory2(shared_handle2); 221 TestDiscardableSharedMemory memory2(shared_handle2);
216 rv = memory2.Map(kDataSize); 222 rv = memory2.Map(kDataSize);
217 ASSERT_TRUE(rv); 223 ASSERT_TRUE(rv);
218 224
219 // Unlock and delete segment 1. 225 // Unlock and delete segment 1.
220 memory1.SetNow(base::Time::FromDoubleT(1)); 226 memory1.SetNow(base::Time::FromDoubleT(1));
221 memory1.Unlock(0, 0); 227 memory1.Unlock(0, 0);
222 memory1.Unmap(); 228 memory1.Unmap();
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 DiscardableSharedMemoryManager* const manager_; 262 DiscardableSharedMemoryManager* const manager_;
257 const size_t limit_; 263 const size_t limit_;
258 }; 264 };
259 265
260 TEST_F(DiscardableSharedMemoryManagerScheduleEnforceMemoryPolicyTest, 266 TEST_F(DiscardableSharedMemoryManagerScheduleEnforceMemoryPolicyTest,
261 SetMemoryLimitOnSimpleThread) { 267 SetMemoryLimitOnSimpleThread) {
262 const int kDataSize = 1024; 268 const int kDataSize = 1024;
263 269
264 base::SharedMemoryHandle shared_handle; 270 base::SharedMemoryHandle shared_handle;
265 manager_->AllocateLockedDiscardableSharedMemoryForClient( 271 manager_->AllocateLockedDiscardableSharedMemoryForClient(
266 kInvalidUniqueID, kDataSize, 0, &shared_handle); 272 base::GetCurrentProcessHandle(), kInvalidUniqueID, kDataSize, 0,
273 &shared_handle);
267 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle)); 274 ASSERT_TRUE(base::SharedMemory::IsHandleValid(shared_handle));
268 275
269 // Set the memory limit to a value that will require EnforceMemoryPolicy() 276 // Set the memory limit to a value that will require EnforceMemoryPolicy()
270 // to be schedule on a thread without a message loop. 277 // to be schedule on a thread without a message loop.
271 SetMemoryLimitRunner runner(manager_.get(), kDataSize - 1); 278 SetMemoryLimitRunner runner(manager_.get(), kDataSize - 1);
272 base::DelegateSimpleThread thread(&runner, "memory_limit_setter"); 279 base::DelegateSimpleThread thread(&runner, "memory_limit_setter");
273 thread.Start(); 280 thread.Start();
274 thread.Join(); 281 thread.Join();
275 } 282 }
276 283
277 } // namespace 284 } // namespace
278 } // namespace discardable_memory 285 } // namespace discardable_memory
OLDNEW
« no previous file with comments | « components/discardable_memory/service/discardable_shared_memory_manager.cc ('k') | content/browser/browser_main_loop.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698