1// Copyright (c) 2011 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 "chrome/test/ui/ui_perf_test.h"
6
7#include "base/path_service.h"
8#include "chrome/common/chrome_paths.h"
9#include "chrome/common/chrome_switches.h"
10#include "chrome/test/base/chrome_process_util.h"
11#include "chrome/test/base/test_switches.h"
12#include "chrome/test/perf/perf_test.h"
13
14void UIPerfTest::SetLaunchSwitches() {
15  UITestBase::SetLaunchSwitches();
16
17  // Reduce performance test variance by disabling background networking.
18  launch_arguments_.AppendSwitch(switches::kDisableBackgroundNetworking);
19
20  // We don't want tests to slow down mysteriously when we update the minimum
21  // plugin version.
22  launch_arguments_.AppendSwitch(switches::kAllowOutdatedPlugins);
23}
24
25void UIPerfTest::PrintIOPerfInfo(const char* test_name) {
26  ChromeProcessList chrome_processes(
27      GetRunningChromeProcesses(browser_process_id()));
28  perf_test::PrintIOPerfInfo(test_name, chrome_processes,
29                             browser_process_id());
30}
31
32void UIPerfTest::PrintMemoryUsageInfo(const char* test_name) {
33  ChromeProcessList chrome_processes(
34      GetRunningChromeProcesses(browser_process_id()));
35  perf_test::PrintMemoryUsageInfo(test_name, chrome_processes,
36                                  browser_process_id());
37}
38
39void UIPerfTest::UseReferenceBuild() {
40  base::FilePath dir;
41  PathService::Get(chrome::DIR_TEST_TOOLS, &dir);
42  dir = dir.AppendASCII("reference_build");
43#if defined(OS_WIN)
44  dir = dir.AppendASCII("chrome_win");
45#elif defined(OS_LINUX)
46  dir = dir.AppendASCII("chrome_linux");
47#elif defined(OS_MACOSX)
48  dir = dir.AppendASCII("chrome_mac");
49#endif
50  launch_arguments_.AppendSwitch(switches::kEnableChromiumBranding);
51  SetBrowserDirectory(dir);
52}
53