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

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

Issue 1374213002: [tracing] Display the locked size of discardable memory segment. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Change to expect. Created 5 years, 2 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
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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/memory/discardable_shared_memory.h" 6 #include "base/memory/discardable_shared_memory.h"
7 #include "base/process/process_metrics.h" 7 #include "base/process/process_metrics.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace base { 10 namespace base {
(...skipping 15 matching lines...) Expand all
26 Time now_; 26 Time now_;
27 }; 27 };
28 28
29 TEST(DiscardableSharedMemoryTest, CreateAndMap) { 29 TEST(DiscardableSharedMemoryTest, CreateAndMap) {
30 const uint32 kDataSize = 1024; 30 const uint32 kDataSize = 1024;
31 31
32 TestDiscardableSharedMemory memory; 32 TestDiscardableSharedMemory memory;
33 bool rv = memory.CreateAndMap(kDataSize); 33 bool rv = memory.CreateAndMap(kDataSize);
34 ASSERT_TRUE(rv); 34 ASSERT_TRUE(rv);
35 EXPECT_GE(memory.mapped_size(), kDataSize); 35 EXPECT_GE(memory.mapped_size(), kDataSize);
36 EXPECT_TRUE(memory.IsMemoryLocked());
36 } 37 }
37 38
38 TEST(DiscardableSharedMemoryTest, CreateFromHandle) { 39 TEST(DiscardableSharedMemoryTest, CreateFromHandle) {
39 const uint32 kDataSize = 1024; 40 const uint32 kDataSize = 1024;
40 41
41 TestDiscardableSharedMemory memory1; 42 TestDiscardableSharedMemory memory1;
42 bool rv = memory1.CreateAndMap(kDataSize); 43 bool rv = memory1.CreateAndMap(kDataSize);
43 ASSERT_TRUE(rv); 44 ASSERT_TRUE(rv);
44 45
45 SharedMemoryHandle shared_handle; 46 SharedMemoryHandle shared_handle;
46 ASSERT_TRUE( 47 ASSERT_TRUE(
47 memory1.ShareToProcess(GetCurrentProcessHandle(), &shared_handle)); 48 memory1.ShareToProcess(GetCurrentProcessHandle(), &shared_handle));
48 ASSERT_TRUE(SharedMemory::IsHandleValid(shared_handle)); 49 ASSERT_TRUE(SharedMemory::IsHandleValid(shared_handle));
49 50
50 TestDiscardableSharedMemory memory2(shared_handle); 51 TestDiscardableSharedMemory memory2(shared_handle);
51 rv = memory2.Map(kDataSize); 52 rv = memory2.Map(kDataSize);
52 ASSERT_TRUE(rv); 53 ASSERT_TRUE(rv);
54 EXPECT_TRUE(memory2.IsMemoryLocked());
53 } 55 }
54 56
55 TEST(DiscardableSharedMemoryTest, LockAndUnlock) { 57 TEST(DiscardableSharedMemoryTest, LockAndUnlock) {
56 const uint32 kDataSize = 1024; 58 const uint32 kDataSize = 1024;
57 59
58 TestDiscardableSharedMemory memory1; 60 TestDiscardableSharedMemory memory1;
59 bool rv = memory1.CreateAndMap(kDataSize); 61 bool rv = memory1.CreateAndMap(kDataSize);
60 ASSERT_TRUE(rv); 62 ASSERT_TRUE(rv);
61 63
62 // Memory is initially locked. Unlock it. 64 // Memory is initially locked. Unlock it.
63 memory1.SetNow(Time::FromDoubleT(1)); 65 memory1.SetNow(Time::FromDoubleT(1));
64 memory1.Unlock(0, 0); 66 memory1.Unlock(0, 0);
67 EXPECT_FALSE(memory1.IsMemoryLocked());
65 68
66 // Lock and unlock memory. 69 // Lock and unlock memory.
67 auto lock_rv = memory1.Lock(0, 0); 70 auto lock_rv = memory1.Lock(0, 0);
68 EXPECT_EQ(DiscardableSharedMemory::SUCCESS, lock_rv); 71 EXPECT_EQ(DiscardableSharedMemory::SUCCESS, lock_rv);
69 memory1.SetNow(Time::FromDoubleT(2)); 72 memory1.SetNow(Time::FromDoubleT(2));
70 memory1.Unlock(0, 0); 73 memory1.Unlock(0, 0);
71 74
72 // Lock again before duplicating and passing ownership to new instance. 75 // Lock again before duplicating and passing ownership to new instance.
73 lock_rv = memory1.Lock(0, 0); 76 lock_rv = memory1.Lock(0, 0);
74 EXPECT_EQ(DiscardableSharedMemory::SUCCESS, lock_rv); 77 EXPECT_EQ(DiscardableSharedMemory::SUCCESS, lock_rv);
78 EXPECT_TRUE(memory1.IsMemoryLocked());
75 79
76 SharedMemoryHandle shared_handle; 80 SharedMemoryHandle shared_handle;
77 ASSERT_TRUE( 81 ASSERT_TRUE(
78 memory1.ShareToProcess(GetCurrentProcessHandle(), &shared_handle)); 82 memory1.ShareToProcess(GetCurrentProcessHandle(), &shared_handle));
79 ASSERT_TRUE(SharedMemory::IsHandleValid(shared_handle)); 83 ASSERT_TRUE(SharedMemory::IsHandleValid(shared_handle));
80 84
81 TestDiscardableSharedMemory memory2(shared_handle); 85 TestDiscardableSharedMemory memory2(shared_handle);
82 rv = memory2.Map(kDataSize); 86 rv = memory2.Map(kDataSize);
83 ASSERT_TRUE(rv); 87 ASSERT_TRUE(rv);
84 88
85 // Unlock second instance. 89 // Unlock second instance.
86 memory2.SetNow(Time::FromDoubleT(3)); 90 memory2.SetNow(Time::FromDoubleT(3));
87 memory2.Unlock(0, 0); 91 memory2.Unlock(0, 0);
88 92
93 // Both memory instances should be unlocked now.
94 EXPECT_FALSE(memory2.IsMemoryLocked());
95 EXPECT_FALSE(memory1.IsMemoryLocked());
96
89 // Lock second instance before passing ownership back to first instance. 97 // Lock second instance before passing ownership back to first instance.
90 lock_rv = memory2.Lock(0, 0); 98 lock_rv = memory2.Lock(0, 0);
91 EXPECT_EQ(DiscardableSharedMemory::SUCCESS, lock_rv); 99 EXPECT_EQ(DiscardableSharedMemory::SUCCESS, lock_rv);
92 100
93 // Memory should still be resident. 101 // Memory should still be resident and locked.
94 rv = memory1.IsMemoryResident(); 102 rv = memory1.IsMemoryResident();
95 EXPECT_TRUE(rv); 103 EXPECT_TRUE(rv);
104 EXPECT_TRUE(memory1.IsMemoryLocked());
96 105
97 // Unlock first instance. 106 // Unlock first instance.
98 memory1.SetNow(Time::FromDoubleT(4)); 107 memory1.SetNow(Time::FromDoubleT(4));
99 memory1.Unlock(0, 0); 108 memory1.Unlock(0, 0);
100 } 109 }
101 110
102 TEST(DiscardableSharedMemoryTest, Purge) { 111 TEST(DiscardableSharedMemoryTest, Purge) {
103 const uint32 kDataSize = 1024; 112 const uint32 kDataSize = 1024;
104 113
105 TestDiscardableSharedMemory memory1; 114 TestDiscardableSharedMemory memory1;
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 EXPECT_NE(0u, memory.mapped_size()); 354 EXPECT_NE(0u, memory.mapped_size());
346 355
347 // Mapped size should be 0 after shrinking memory segment. 356 // Mapped size should be 0 after shrinking memory segment.
348 memory.Shrink(); 357 memory.Shrink();
349 EXPECT_EQ(0u, memory.mapped_size()); 358 EXPECT_EQ(0u, memory.mapped_size());
350 } 359 }
351 #endif 360 #endif
352 361
353 } // namespace 362 } // namespace
354 } // namespace base 363 } // namespace base
OLDNEW
« no previous file with comments | « base/memory/discardable_shared_memory.cc ('k') | content/child/child_discardable_shared_memory_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698