blob: 946aa566dfa551e42142550255b82d793fff7023 [file] [log] [blame]
// Copyright (c) 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.
#ifndef CONTENT_BROWSER_MEMORY_TEST_MEMORY_MONITOR_H_
#define CONTENT_BROWSER_MEMORY_TEST_MEMORY_MONITOR_H_
#include "content/browser/memory/memory_monitor.h"
#include "base/process/process_metrics.h"
namespace content {
// A delegate that allows mocking the various inputs to MemoryMonitor.
class TestMemoryMonitorDelegate : public MemoryMonitorDelegate {
public:
TestMemoryMonitorDelegate() : calls_(0) { mem_info_ = {}; }
~TestMemoryMonitorDelegate() override;
void GetSystemMemoryInfo(base::SystemMemoryInfoKB* mem_info) override;
size_t calls() const { return calls_; }
void ResetCalls() { calls_ = 0; }
void SetTotalMemoryKB(int total_memory_kb) {
mem_info_.total = total_memory_kb;
}
protected:
// Because the fields of SystemMemoryInfoKB vary depending on the operating
// system, specific derived classes will have to provide methods to load
// values into |mem_info_|;
base::SystemMemoryInfoKB mem_info_;
private:
size_t calls_;
DISALLOW_COPY_AND_ASSIGN(TestMemoryMonitorDelegate);
};
} // namespace content
#endif // CONTENT_BROWSER_MEMORY_TEST_MEMORY_MONITOR_H_