15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/test/perf/browser_perf_test.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/command_line.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/chrome_switches.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/test/base/chrome_process_util.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/test/perf/perf_test.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BrowserPerfTest::BrowserPerfTest() {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BrowserPerfTest::~BrowserPerfTest() {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void BrowserPerfTest::SetUpCommandLine(CommandLine* command_line) {
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Reduce performance test variance by disabling background networking.
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  command_line->AppendSwitch(switches::kDisableBackgroundNetworking);
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void BrowserPerfTest::PrintIOPerfInfo(const std::string& test_name) {
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  base::ProcessId browser_pid = base::GetCurrentProcId();
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ChromeProcessList chrome_processes(GetRunningChromeProcesses(browser_pid));
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  perf_test::PrintIOPerfInfo(test_name, chrome_processes, browser_pid);
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void BrowserPerfTest::PrintMemoryUsageInfo(const std::string& test_name) {
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  base::ProcessId browser_pid = base::GetCurrentProcId();
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ChromeProcessList chrome_processes(GetRunningChromeProcesses(browser_pid));
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  perf_test::PrintMemoryUsageInfo(test_name, chrome_processes, browser_pid);
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
34