|  | // Copyright 2016 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "base/memory/memory_pressure_monitor.h" | 
|  |  | 
|  | #include "base/macros.h" | 
|  | #include "base/memory/memory_pressure_listener.h" | 
|  | #include "base/test/metrics/histogram_tester.h" | 
|  | #include "testing/gtest/include/gtest/gtest.h" | 
|  |  | 
|  | namespace base { | 
|  |  | 
|  | TEST(MemoryPressureMonitorTest, RecordMemoryPressure) { | 
|  | base::HistogramTester tester; | 
|  | const char* kHistogram = "Memory.PressureLevel"; | 
|  |  | 
|  | MemoryPressureMonitor::RecordMemoryPressure( | 
|  | MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE, 3); | 
|  | tester.ExpectTotalCount(kHistogram, 3); | 
|  | tester.ExpectBucketCount(kHistogram, 0, 3); | 
|  |  | 
|  | MemoryPressureMonitor::RecordMemoryPressure( | 
|  | MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, 2); | 
|  | tester.ExpectTotalCount(kHistogram, 5); | 
|  | tester.ExpectBucketCount(kHistogram, 1, 2); | 
|  |  | 
|  | MemoryPressureMonitor::RecordMemoryPressure( | 
|  | MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, 1); | 
|  | tester.ExpectTotalCount(kHistogram, 6); | 
|  | tester.ExpectBucketCount(kHistogram, 2, 1); | 
|  | } | 
|  | }  // namespace base |