• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "base/memory/memory_pressure_monitor.h"
6 
7 #include "base/macros.h"
8 #include "base/memory/memory_pressure_listener.h"
9 #include "base/test/metrics/histogram_tester.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11 
12 namespace base {
13 
TEST(MemoryPressureMonitorTest,RecordMemoryPressure)14 TEST(MemoryPressureMonitorTest, RecordMemoryPressure) {
15   base::HistogramTester tester;
16   const char* kHistogram = "Memory.PressureLevel";
17 
18   MemoryPressureMonitor::RecordMemoryPressure(
19       MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE, 3);
20   tester.ExpectTotalCount(kHistogram, 3);
21   tester.ExpectBucketCount(kHistogram, 0, 3);
22 
23   MemoryPressureMonitor::RecordMemoryPressure(
24       MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, 2);
25   tester.ExpectTotalCount(kHistogram, 5);
26   tester.ExpectBucketCount(kHistogram, 1, 2);
27 
28   MemoryPressureMonitor::RecordMemoryPressure(
29       MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, 1);
30   tester.ExpectTotalCount(kHistogram, 6);
31   tester.ExpectBucketCount(kHistogram, 2, 1);
32 }
33 }  // namespace base
34