Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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.h" | 5 #include "base/memory/discardable_memory.h" |
| 6 #include "base/memory/scoped_ptr.h" | |
| 6 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
| 7 | 8 |
| 8 namespace base { | 9 namespace base { |
| 9 | 10 |
| 10 #if defined(OS_ANDROID) || defined(OS_MACOSX) | 11 #if defined(OS_ANDROID) || defined(OS_MACOSX) |
|
Avi (use Gerrit)
2013/06/07 14:46:53
#if defined(DISCARDABLE_MEMORY_SUPPORTED_NATIVELY)
| |
| 11 // Test Lock() and Unlock() functionalities. | 12 // Test Lock() and Unlock() functionalities. |
| 12 TEST(DiscardableMemoryTest, LockAndUnLock) { | 13 TEST(DiscardableMemoryTest, LockAndUnLock) { |
| 13 ASSERT_TRUE(DiscardableMemory::Supported()); | 14 ASSERT_TRUE(DiscardableMemoryProvider::GetInstance()); |
| 14 | 15 |
| 15 const size_t size = 1024; | 16 const size_t size = 1024; |
| 16 | 17 |
| 17 DiscardableMemory memory; | 18 scoped_ptr<DiscardableMemory> memory( |
| 18 ASSERT_TRUE(memory.InitializeAndLock(size)); | 19 DiscardableMemoryProvider::GetInstance()->CreateDiscardableMemory()); |
| 19 void* addr = memory.Memory(); | 20 ASSERT_TRUE(memory->InitializeAndLock(size)); |
| 21 void* addr = memory->Memory(); | |
| 20 ASSERT_NE(static_cast<void*>(NULL), addr); | 22 ASSERT_NE(static_cast<void*>(NULL), addr); |
| 21 | 23 |
| 22 memory.Unlock(); | 24 memory->Unlock(); |
| 23 // The system should have no reason to purge discardable blocks in this brief | 25 // The system should have no reason to purge discardable blocks in this brief |
| 24 // interval, though technically speaking this might flake. | 26 // interval, though technically speaking this might flake. |
| 25 EXPECT_EQ(DISCARDABLE_MEMORY_SUCCESS, memory.Lock()); | 27 EXPECT_EQ(DISCARDABLE_MEMORY_SUCCESS, memory->Lock()); |
| 26 addr = memory.Memory(); | 28 addr = memory->Memory(); |
| 27 ASSERT_NE(static_cast<void*>(NULL), addr); | 29 ASSERT_NE(static_cast<void*>(NULL), addr); |
| 28 | 30 |
| 29 memory.Unlock(); | 31 memory->Unlock(); |
| 30 } | 32 } |
| 31 | 33 |
| 32 // Test delete a discardable memory while it is locked. | 34 // Test delete a discardable memory while it is locked. |
| 33 TEST(DiscardableMemoryTest, DeleteWhileLocked) { | 35 TEST(DiscardableMemoryTest, DeleteWhileLocked) { |
| 34 ASSERT_TRUE(DiscardableMemory::Supported()); | 36 ASSERT_TRUE(DiscardableMemoryProvider::GetInstance()); |
| 35 | 37 |
| 36 const size_t size = 1024; | 38 const size_t size = 1024; |
| 37 | 39 |
| 38 DiscardableMemory memory; | 40 scoped_ptr<DiscardableMemory> memory( |
| 39 ASSERT_TRUE(memory.InitializeAndLock(size)); | 41 DiscardableMemoryProvider::GetInstance()->CreateDiscardableMemory()); |
| 42 ASSERT_TRUE(memory->InitializeAndLock(size)); | |
| 40 } | 43 } |
| 41 | 44 |
| 42 #if defined(OS_MACOSX) | 45 #if defined(OS_MACOSX) |
| 43 // Test forced purging. | 46 // Test forced purging. |
| 44 TEST(DiscardableMemoryTest, Purge) { | 47 TEST(DiscardableMemoryTest, Purge) { |
| 45 ASSERT_TRUE(DiscardableMemory::Supported()); | 48 ASSERT_TRUE(DiscardableMemoryProvider::GetInstance()); |
| 46 ASSERT_TRUE(DiscardableMemory::PurgeForTestingSupported()); | 49 ASSERT_TRUE( |
| 50 DiscardableMemoryProvider::GetInstance()->PurgeForTestingSupported()); | |
| 47 | 51 |
| 48 const size_t size = 1024; | 52 const size_t size = 1024; |
| 49 | 53 |
| 50 DiscardableMemory memory; | 54 scoped_ptr<DiscardableMemory> memory( |
| 51 ASSERT_TRUE(memory.InitializeAndLock(size)); | 55 DiscardableMemoryProvider::GetInstance()->CreateDiscardableMemory()); |
| 52 memory.Unlock(); | 56 ASSERT_TRUE(memory->InitializeAndLock(size)); |
| 57 memory->Unlock(); | |
| 53 | 58 |
| 54 DiscardableMemory::PurgeForTesting(); | 59 DiscardableMemoryProvider::GetInstance()->PurgeForTesting(); |
| 55 EXPECT_EQ(DISCARDABLE_MEMORY_PURGED, memory.Lock()); | 60 EXPECT_EQ(DISCARDABLE_MEMORY_PURGED, memory->Lock()); |
| 56 } | 61 } |
| 57 #endif // OS_MACOSX | 62 #endif // OS_MACOSX |
| 58 | 63 |
| 59 #endif // OS_* | 64 #endif // OS_* |
| 60 | 65 |
| 61 } | 66 } |
| OLD | NEW |