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

Side by Side Diff: base/memory/discardable_memory_allocator_android_unittest.cc

Issue 183763037: Update AshmemRegion::highest_allocated_chunk_ when merging free chunks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove unnecessary allocator instance in unit test Created 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/memory/discardable_memory_allocator_android.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "base/memory/discardable_memory_allocator_android.h" 5 #include "base/memory/discardable_memory_allocator_android.h"
6 6
7 #include <sys/types.h> 7 #include <sys/types.h>
8 #include <unistd.h> 8 #include <unistd.h>
9 9
10 #include "base/memory/discardable_memory.h" 10 #include "base/memory/discardable_memory.h"
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 // The last page of the first ashmem region should be used for this 264 // The last page of the first ashmem region should be used for this
265 // allocation. 265 // allocation.
266 scoped_ptr<DiscardableMemory> memory3(allocator_.Allocate(kPageSize)); 266 scoped_ptr<DiscardableMemory> memory3(allocator_.Allocate(kPageSize));
267 ASSERT_TRUE(memory3); 267 ASSERT_TRUE(memory3);
268 WriteToDiscardableMemory(memory3.get(), kPageSize); 268 WriteToDiscardableMemory(memory3.get(), kPageSize);
269 EXPECT_EQ(memory3->Memory(), static_cast<char*>(memory1->Memory()) + size); 269 EXPECT_EQ(memory3->Memory(), static_cast<char*>(memory1->Memory()) + size);
270 } 270 }
271 271
272 TEST_F(DiscardableMemoryAllocatorTest, 272 TEST_F(DiscardableMemoryAllocatorTest,
273 HighestAllocatedChunkPointerIsUpdatedWhenHighestChunkGetsSplit) { 273 HighestAllocatedChunkPointerIsUpdatedWhenHighestChunkGetsSplit) {
274 DiscardableMemoryAllocator allocator_(kAllocatorName, 32 * kPageSize);
Philippe 2014/03/05 15:36:03 FYI, I just uploaded a patch set removing this (wh
275
276 // Prevents the ashmem region from getting closed when |memory2| gets freed. 274 // Prevents the ashmem region from getting closed when |memory2| gets freed.
277 scoped_ptr<DiscardableMemory> memory1(allocator_.Allocate(kPageSize)); 275 scoped_ptr<DiscardableMemory> memory1(allocator_.Allocate(kPageSize));
278 ASSERT_TRUE(memory1); 276 ASSERT_TRUE(memory1);
279 277
280 scoped_ptr<DiscardableMemory> memory2(allocator_.Allocate(4 * kPageSize)); 278 scoped_ptr<DiscardableMemory> memory2(allocator_.Allocate(4 * kPageSize));
281 ASSERT_TRUE(memory2); 279 ASSERT_TRUE(memory2);
282 280
283 memory2.reset(); 281 memory2.reset();
284 memory2 = allocator_.Allocate(kPageSize); 282 memory2 = allocator_.Allocate(kPageSize);
285 // There should now be a free chunk of size 3 * |kPageSize| starting at offset 283 // There should now be a free chunk of size 3 * |kPageSize| starting at offset
(...skipping 10 matching lines...) Expand all
296 // Deleting |memory3| (whose size is 4 * |kPageSize|) should result in a merge 294 // Deleting |memory3| (whose size is 4 * |kPageSize|) should result in a merge
297 // with its previous chunk which is the free chunk of size |3 * kPageSize|. 295 // with its previous chunk which is the free chunk of size |3 * kPageSize|.
298 memory3.reset(); 296 memory3.reset();
299 memory3 = allocator_.Allocate((3 + 4) * kPageSize); 297 memory3 = allocator_.Allocate((3 + 4) * kPageSize);
300 EXPECT_EQ(memory3->Memory(), 298 EXPECT_EQ(memory3->Memory(),
301 static_cast<const char*>(memory2->Memory()) + kPageSize); 299 static_cast<const char*>(memory2->Memory()) + kPageSize);
302 } 300 }
303 301
304 } // namespace internal 302 } // namespace internal
305 } // namespace base 303 } // namespace base
OLDNEW
« no previous file with comments | « base/memory/discardable_memory_allocator_android.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698