| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/launcher/unit_test_launcher.h" | 5 #include "base/test/launcher/unit_test_launcher.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/callback_helpers.h" | 8 #include "base/callback_helpers.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 | 25 |
| 26 namespace base { | 26 namespace base { |
| 27 | 27 |
| 28 namespace { | 28 namespace { |
| 29 | 29 |
| 30 // This constant controls how many tests are run in a single batch by default. | 30 // This constant controls how many tests are run in a single batch by default. |
| 31 const size_t kDefaultTestBatchLimit = 10; | 31 const size_t kDefaultTestBatchLimit = 10; |
| 32 | 32 |
| 33 const char kHelpFlag[] = "help"; | 33 const char kHelpFlag[] = "help"; |
| 34 | 34 |
| 35 // Flag to enable the new launcher logic. | |
| 36 // TODO(phajdan.jr): Remove it, http://crbug.com/236893 . | |
| 37 const char kBraveNewTestLauncherFlag[] = "brave-new-test-launcher"; | |
| 38 | |
| 39 // Flag to run all tests in a single process. | 35 // Flag to run all tests in a single process. |
| 40 const char kSingleProcessTestsFlag[] = "single-process-tests"; | 36 const char kSingleProcessTestsFlag[] = "single-process-tests"; |
| 41 | 37 |
| 42 void PrintUsage() { | 38 void PrintUsage() { |
| 43 fprintf(stdout, | 39 fprintf(stdout, |
| 44 "Runs tests using the gtest framework, each batch of tests being\n" | 40 "Runs tests using the gtest framework, each batch of tests being\n" |
| 45 "run in their own process. Supported command-line flags:\n" | 41 "run in their own process. Supported command-line flags:\n" |
| 46 "\n" | 42 "\n" |
| 47 " --single-process-tests\n" | 43 " --single-process-tests\n" |
| 48 " Runs the tests and the launcher in the same process. Useful\n" | 44 " Runs the tests and the launcher in the same process. Useful\n" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 64 // of current process. |test_names| is a vector of test full names | 60 // of current process. |test_names| is a vector of test full names |
| 65 // (e.g. "A.B"), |output_file| is path to the GTest XML output file. | 61 // (e.g. "A.B"), |output_file| is path to the GTest XML output file. |
| 66 CommandLine GetCommandLineForChildGTestProcess( | 62 CommandLine GetCommandLineForChildGTestProcess( |
| 67 const std::vector<std::string>& test_names, | 63 const std::vector<std::string>& test_names, |
| 68 const base::FilePath& output_file) { | 64 const base::FilePath& output_file) { |
| 69 CommandLine new_cmd_line(*CommandLine::ForCurrentProcess()); | 65 CommandLine new_cmd_line(*CommandLine::ForCurrentProcess()); |
| 70 | 66 |
| 71 new_cmd_line.AppendSwitchPath(switches::kTestLauncherOutput, output_file); | 67 new_cmd_line.AppendSwitchPath(switches::kTestLauncherOutput, output_file); |
| 72 new_cmd_line.AppendSwitchASCII(kGTestFilterFlag, JoinString(test_names, ":")); | 68 new_cmd_line.AppendSwitchASCII(kGTestFilterFlag, JoinString(test_names, ":")); |
| 73 new_cmd_line.AppendSwitch(kSingleProcessTestsFlag); | 69 new_cmd_line.AppendSwitch(kSingleProcessTestsFlag); |
| 74 new_cmd_line.AppendSwitch(kBraveNewTestLauncherFlag); | |
| 75 | 70 |
| 76 return new_cmd_line; | 71 return new_cmd_line; |
| 77 } | 72 } |
| 78 | 73 |
| 79 class UnitTestLauncherDelegate : public TestLauncherDelegate { | 74 class UnitTestLauncherDelegate : public TestLauncherDelegate { |
| 80 public: | 75 public: |
| 81 explicit UnitTestLauncherDelegate(size_t batch_limit) | 76 explicit UnitTestLauncherDelegate(size_t batch_limit) |
| 82 : batch_limit_(batch_limit) { | 77 : batch_limit_(batch_limit) { |
| 83 } | 78 } |
| 84 | 79 |
| (...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 | 434 |
| 440 return true; | 435 return true; |
| 441 } | 436 } |
| 442 | 437 |
| 443 int LaunchUnitTestsInternal(int argc, | 438 int LaunchUnitTestsInternal(int argc, |
| 444 char** argv, | 439 char** argv, |
| 445 const RunTestSuiteCallback& run_test_suite, | 440 const RunTestSuiteCallback& run_test_suite, |
| 446 int default_jobs) { | 441 int default_jobs) { |
| 447 CommandLine::Init(argc, argv); | 442 CommandLine::Init(argc, argv); |
| 448 if (CommandLine::ForCurrentProcess()->HasSwitch(kGTestHelpFlag) || | 443 if (CommandLine::ForCurrentProcess()->HasSwitch(kGTestHelpFlag) || |
| 449 CommandLine::ForCurrentProcess()->HasSwitch(kSingleProcessTestsFlag) || | 444 CommandLine::ForCurrentProcess()->HasSwitch(kSingleProcessTestsFlag)) { |
| 450 !CommandLine::ForCurrentProcess()->HasSwitch(kBraveNewTestLauncherFlag)) { | |
| 451 return run_test_suite.Run(); | 445 return run_test_suite.Run(); |
| 452 } | 446 } |
| 453 | 447 |
| 454 if (CommandLine::ForCurrentProcess()->HasSwitch(kHelpFlag)) { | 448 if (CommandLine::ForCurrentProcess()->HasSwitch(kHelpFlag)) { |
| 455 PrintUsage(); | 449 PrintUsage(); |
| 456 return 0; | 450 return 0; |
| 457 } | 451 } |
| 458 | 452 |
| 459 base::TimeTicks start_time(base::TimeTicks::Now()); | 453 base::TimeTicks start_time(base::TimeTicks::Now()); |
| 460 | 454 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 argc, argv, run_test_suite, SysInfo::NumberOfProcessors()); | 489 argc, argv, run_test_suite, SysInfo::NumberOfProcessors()); |
| 496 } | 490 } |
| 497 | 491 |
| 498 int LaunchUnitTestsSerially(int argc, | 492 int LaunchUnitTestsSerially(int argc, |
| 499 char** argv, | 493 char** argv, |
| 500 const RunTestSuiteCallback& run_test_suite) { | 494 const RunTestSuiteCallback& run_test_suite) { |
| 501 return LaunchUnitTestsInternal(argc, argv, run_test_suite, 1); | 495 return LaunchUnitTestsInternal(argc, argv, run_test_suite, 1); |
| 502 } | 496 } |
| 503 | 497 |
| 504 } // namespace base | 498 } // namespace base |
| OLD | NEW |