Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(263)

Side by Side Diff: base/test/test_suite.cc

Issue 2131293002: Make all tests profilable (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/base_switches.cc ('k') | chrome/common/chrome_switches.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/test/test_suite.h" 5 #include "base/test/test_suite.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/at_exit.h" 9 #include "base/at_exit.h"
10 #include "base/base_paths.h" 10 #include "base/base_paths.h"
11 #include "base/base_switches.h" 11 #include "base/base_switches.h"
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/command_line.h" 13 #include "base/command_line.h"
14 #include "base/debug/debugger.h" 14 #include "base/debug/debugger.h"
15 #include "base/debug/profiler.h"
15 #include "base/debug/stack_trace.h" 16 #include "base/debug/stack_trace.h"
16 #include "base/feature_list.h" 17 #include "base/feature_list.h"
17 #include "base/files/file_path.h" 18 #include "base/files/file_path.h"
18 #include "base/files/file_util.h" 19 #include "base/files/file_util.h"
19 #include "base/i18n/icu_util.h" 20 #include "base/i18n/icu_util.h"
20 #include "base/logging.h" 21 #include "base/logging.h"
21 #include "base/macros.h" 22 #include "base/macros.h"
22 #include "base/memory/ptr_util.h" 23 #include "base/memory/ptr_util.h"
23 #include "base/path_service.h" 24 #include "base/path_service.h"
24 #include "base/process/launch.h" 25 #include "base/process/launch.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 void OnTestEnd(const testing::TestInfo& test_info) override { 86 void OnTestEnd(const testing::TestInfo& test_info) override {
86 *CommandLine::ForCurrentProcess() = old_command_line_; 87 *CommandLine::ForCurrentProcess() = old_command_line_;
87 } 88 }
88 89
89 private: 90 private:
90 CommandLine old_command_line_; 91 CommandLine old_command_line_;
91 92
92 DISALLOW_COPY_AND_ASSIGN(TestClientInitializer); 93 DISALLOW_COPY_AND_ASSIGN(TestClientInitializer);
93 }; 94 };
94 95
96 std::string GetProfileName() {
97 static const char kDefaultProfileName[] = "test-profile-{pid}";
98 CR_DEFINE_STATIC_LOCAL(std::string, profile_name, ());
99 if (profile_name.empty()) {
100 const base::CommandLine& command_line =
101 *base::CommandLine::ForCurrentProcess();
102 if (command_line.HasSwitch(switches::kProfilingFile))
103 profile_name = command_line.GetSwitchValueASCII(switches::kProfilingFile);
104 else
105 profile_name = std::string(kDefaultProfileName);
106 }
107 return profile_name;
108 }
109
95 } // namespace 110 } // namespace
96 111
97 int RunUnitTestsUsingBaseTestSuite(int argc, char **argv) { 112 int RunUnitTestsUsingBaseTestSuite(int argc, char **argv) {
98 TestSuite test_suite(argc, argv); 113 TestSuite test_suite(argc, argv);
99 return LaunchUnitTests(argc, argv, 114 return LaunchUnitTests(argc, argv,
100 Bind(&TestSuite::Run, Unretained(&test_suite))); 115 Bind(&TestSuite::Run, Unretained(&test_suite)));
101 } 116 }
102 117
103 TestSuite::TestSuite(int argc, char** argv) 118 TestSuite::TestSuite(int argc, char** argv)
104 : initialized_command_line_(false), created_feature_list_(false) { 119 : initialized_command_line_(false), created_feature_list_(false) {
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 #endif 370 #endif
356 #endif 371 #endif
357 372
358 CatchMaybeTests(); 373 CatchMaybeTests();
359 ResetCommandLine(); 374 ResetCommandLine();
360 AddTestLauncherResultPrinter(); 375 AddTestLauncherResultPrinter();
361 376
362 TestTimeouts::Initialize(); 377 TestTimeouts::Initialize();
363 378
364 trace_to_file_.BeginTracingFromCommandLineOptions(); 379 trace_to_file_.BeginTracingFromCommandLineOptions();
380
381 base::debug::StartProfiling(GetProfileName());
365 } 382 }
366 383
367 void TestSuite::Shutdown() { 384 void TestSuite::Shutdown() {
385 base::debug::StopProfiling();
386
368 // Clear the FeatureList that was created by Initialize(). 387 // Clear the FeatureList that was created by Initialize().
369 if (created_feature_list_) 388 if (created_feature_list_)
370 FeatureList::ClearInstanceForTesting(); 389 FeatureList::ClearInstanceForTesting();
371 } 390 }
372 391
373 } // namespace base 392 } // namespace base
OLDNEW
« no previous file with comments | « base/base_switches.cc ('k') | chrome/common/chrome_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698