summaryrefslogtreecommitdiffstats
path: root/base/test/perf_test_suite.cc
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-10 00:21:35 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-10 00:21:35 +0000
commit99cc51e28aa075dec3a999a406db7d062666321a (patch)
tree33b6032fb47232d1f7aa28ddf03c808085e34e10 /base/test/perf_test_suite.cc
parentd41af62c7ed4221f5dfe65e017f5d408493d5001 (diff)
downloadchromium_src-99cc51e28aa075dec3a999a406db7d062666321a.zip
chromium_src-99cc51e28aa075dec3a999a406db7d062666321a.tar.gz
chromium_src-99cc51e28aa075dec3a999a406db7d062666321a.tar.bz2
Move PerfTestSuite implementation into a .cc file and add it to the base
namespace. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3695001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62095 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/test/perf_test_suite.cc')
-rw-r--r--base/test/perf_test_suite.cc46
1 files changed, 46 insertions, 0 deletions
diff --git a/base/test/perf_test_suite.cc b/base/test/perf_test_suite.cc
new file mode 100644
index 0000000..b787add
--- /dev/null
+++ b/base/test/perf_test_suite.cc
@@ -0,0 +1,46 @@
+// Copyright (c) 2010 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/test/perf_test_suite.h"
+
+#include "base/command_line.h"
+#include "base/debug_util.h"
+#include "base/file_path.h"
+#include "base/path_service.h"
+#include "base/perftimer.h"
+#include "base/process_util.h"
+#include "base/string_util.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace base {
+
+PerfTestSuite::PerfTestSuite(int argc, char** argv) : TestSuite(argc, argv) {
+}
+
+void PerfTestSuite::Initialize() {
+ TestSuite::Initialize();
+
+ // Initialize the perf timer log
+ FilePath log_path =
+ CommandLine::ForCurrentProcess()->GetSwitchValuePath("log-file");
+ if (log_path.empty()) {
+ FilePath exe;
+ PathService::Get(base::FILE_EXE, &exe);
+ log_path = exe.ReplaceExtension(FILE_PATH_LITERAL("log"));
+ log_path = log_path.InsertBeforeExtension(FILE_PATH_LITERAL("_perf"));
+ }
+ ASSERT_TRUE(InitPerfLog(log_path));
+
+ // Raise to high priority to have more precise measurements. Since we don't
+ // aim at 1% precision, it is not necessary to run at realtime level.
+ if (!DebugUtil::BeingDebugged())
+ base::RaiseProcessToHighPriority();
+}
+
+void PerfTestSuite::Shutdown() {
+ TestSuite::Shutdown();
+ FinalizePerfLog();
+}
+
+} // namespace base