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 |