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

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

Issue 1250093006: Added memory pressure monitor for linux. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Uncomment ::Get functionality Created 5 years, 5 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
« no previous file with comments | « base/memory/memory_pressure_monitor_linux.cc ('k') | base/memory/memory_pressure_monitor_mac.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/memory_pressure_monitor_chromeos.h" 5 #include "base/memory/memory_pressure_monitor.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/memory/memory_pressure_listener.h" 8 #include "base/memory/memory_pressure_listener.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 11
12 namespace base { 12 namespace base {
13 namespace chromeos {
14 13
15 namespace { 14 namespace {
16 15
17 // True if the memory notifier got called. 16 // True if the memory notifier got called.
18 // Do not read/modify value directly. 17 // Do not read/modify value directly.
19 bool on_memory_pressure_called = false; 18 bool on_memory_pressure_called = false;
20 19
21 // If the memory notifier got called, this is the memory pressure reported. 20 // If the memory notifier got called, this is the memory pressure reported.
22 MemoryPressureListener::MemoryPressureLevel on_memory_pressure_level = 21 MemoryPressureListener::MemoryPressureLevel on_memory_pressure_level =
23 MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE; 22 MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE;
(...skipping 14 matching lines...) Expand all
38 bool b = on_memory_pressure_called; 37 bool b = on_memory_pressure_called;
39 ResetOnMemoryPressureCalled(); 38 ResetOnMemoryPressureCalled();
40 return b; 39 return b;
41 } 40 }
42 41
43 } // namespace 42 } // namespace
44 43
45 class TestMemoryPressureMonitor : public MemoryPressureMonitor { 44 class TestMemoryPressureMonitor : public MemoryPressureMonitor {
46 public: 45 public:
47 TestMemoryPressureMonitor() 46 TestMemoryPressureMonitor()
48 : MemoryPressureMonitor(THRESHOLD_DEFAULT), 47 : MemoryPressureMonitor(), memory_in_percent_override_(0) {
49 memory_in_percent_override_(0) {
50 // Disable any timers which are going on and set a special memory reporting 48 // Disable any timers which are going on and set a special memory reporting
51 // function. 49 // function.
52 StopObserving(); 50 StopObserving();
53 } 51 }
54 ~TestMemoryPressureMonitor() override {} 52 ~TestMemoryPressureMonitor() override {}
55 53
56 void SetMemoryInPercentOverride(int percent) { 54 void SetMemoryInPercentOverride(int percent) {
57 memory_in_percent_override_ = percent; 55 memory_in_percent_override_ = percent;
58 } 56 }
59 57
60 void CheckMemoryPressureForTest() { 58 void CheckMemoryPressureForTest() { CheckMemoryPressure(); }
61 CheckMemoryPressure();
62 }
63 59
64 private: 60 private:
65 int GetUsedMemoryInPercent() override { 61 int GetUsedMemoryInPercent() override { return memory_in_percent_override_; }
66 return memory_in_percent_override_;
67 }
68 62
69 int memory_in_percent_override_; 63 int memory_in_percent_override_;
70 DISALLOW_COPY_AND_ASSIGN(TestMemoryPressureMonitor); 64 DISALLOW_COPY_AND_ASSIGN(TestMemoryPressureMonitor);
71 }; 65 };
72 66
73 // This test tests the various transition states from memory pressure, looking 67 // This test tests the various transition states from memory pressure, looking
74 // for the correct behavior on event reposting as well as state updates. 68 // for the correct behavior on event reposting as well as state updates.
75 TEST(ChromeOSMemoryPressureMonitorTest, CheckMemoryPressure) { 69 TEST(LinuxMemoryPressureMonitorTest, CheckMemoryPressure) {
76 base::MessageLoopForUI message_loop; 70 base::MessageLoopForUI message_loop;
77 scoped_ptr<TestMemoryPressureMonitor> monitor( 71 scoped_ptr<TestMemoryPressureMonitor> monitor(new TestMemoryPressureMonitor);
78 new TestMemoryPressureMonitor);
79 scoped_ptr<MemoryPressureListener> listener( 72 scoped_ptr<MemoryPressureListener> listener(
80 new MemoryPressureListener(base::Bind(&OnMemoryPressure))); 73 new MemoryPressureListener(base::Bind(&OnMemoryPressure)));
81 // Checking the memory pressure while 0% are used should not produce any 74 // Checking the memory pressure while 0% are used should not produce any
82 // events. 75 // events.
83 monitor->SetMemoryInPercentOverride(0); 76 monitor->SetMemoryInPercentOverride(0);
84 ResetOnMemoryPressureCalled(); 77 ResetOnMemoryPressureCalled();
85 78
86 monitor->CheckMemoryPressureForTest(); 79 monitor->CheckMemoryPressureForTest();
87 message_loop.RunUntilIdle(); 80 message_loop.RunUntilIdle();
88 EXPECT_FALSE(WasOnMemoryPressureCalled()); 81 EXPECT_FALSE(WasOnMemoryPressureCalled());
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 if (WasOnMemoryPressureCalled()) { 148 if (WasOnMemoryPressureCalled()) {
156 EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, 149 EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE,
157 on_memory_pressure_level); 150 on_memory_pressure_level);
158 break; 151 break;
159 } 152 }
160 } 153 }
161 // We should have needed exactly the same amount of checks as before. 154 // We should have needed exactly the same amount of checks as before.
162 EXPECT_EQ(j, i); 155 EXPECT_EQ(j, i);
163 } 156 }
164 157
165 } // namespace chromeos
166 } // namespace base 158 } // namespace base
OLDNEW
« no previous file with comments | « base/memory/memory_pressure_monitor_linux.cc ('k') | base/memory/memory_pressure_monitor_mac.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698