// 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