diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-09 15:25:53 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-09 15:25:53 +0000 |
commit | 19d536f25ffa4e876c7af79b201c7330841b31ea (patch) | |
tree | 2f64619a8812920692bd3c7e69103727021e9d53 /base/test/perf_test_suite.cc | |
parent | 6c4e6631acb0893ba00f035792e80942e2b00bd3 (diff) | |
download | chromium_src-19d536f25ffa4e876c7af79b201c7330841b31ea.zip chromium_src-19d536f25ffa4e876c7af79b201c7330841b31ea.tar.gz chromium_src-19d536f25ffa4e876c7af79b201c7330841b31ea.tar.bz2 |
Cleanup in base. This moves the implementation (and a bunch of header file
dependencies) from the multiprocess test and the test_suite headers to .cc
files. Moves multiprocess_test to the test directory, and all of this stuff to
the existing base_test_support project. I also used the base namespace.
Previously other projects included this functionality just by #include because
it was all inline, so I had to add dependencies on base_test_support in a few
places.
Moves and renames the command line switch this was using to base_switches. Move
the base switch for process type to chrome switches.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/3026055
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55400 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/test/perf_test_suite.cc')
-rw-r--r-- | base/test/perf_test_suite.cc | 46 |
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..77e5b52 --- /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/test/test_suite.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(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()) + RaiseProcessToHighPriority(); +} + +void PerfTestSuite::Shutdown() { + TestSuite::Shutdown(); + FinalizePerfLog(); +} + +} // namespace base |