| Index: test/launcher/test_launcher.cc
|
| diff --git a/test/launcher/test_launcher.cc b/test/launcher/test_launcher.cc
|
| index 0bb0ef289c56aecc80014b8f162ac07e9422252c..0e53045beb0a4adca57f3364020b56eeb2c2649e 100644
|
| --- a/test/launcher/test_launcher.cc
|
| +++ b/test/launcher/test_launcher.cc
|
| @@ -456,13 +456,13 @@ TestLauncher::TestLauncher(TestLauncherDelegate* launcher_delegate,
|
| test_broken_count_(0),
|
| retry_count_(0),
|
| retry_limit_(0),
|
| + force_run_broken_tests_(false),
|
| run_result_(true),
|
| watchdog_timer_(FROM_HERE,
|
| TimeDelta::FromSeconds(kOutputTimeoutSeconds),
|
| this,
|
| &TestLauncher::OnOutputTimeout),
|
| - parallel_jobs_(parallel_jobs) {
|
| -}
|
| + parallel_jobs_(parallel_jobs) {}
|
|
|
| TestLauncher::~TestLauncher() {
|
| if (worker_pool_owner_)
|
| @@ -619,7 +619,7 @@ void TestLauncher::OnTestFinished(const TestResult& result) {
|
| }
|
| size_t broken_threshold =
|
| std::max(static_cast<size_t>(20), test_started_count_ / 10);
|
| - if (test_broken_count_ >= broken_threshold) {
|
| + if (!force_run_broken_tests_ && test_broken_count_ >= broken_threshold) {
|
| fprintf(stdout, "Too many badly broken tests (%" PRIuS "), exiting now.\n",
|
| test_broken_count_);
|
| fflush(stdout);
|
| @@ -643,7 +643,7 @@ void TestLauncher::OnTestFinished(const TestResult& result) {
|
| return;
|
| }
|
|
|
| - if (tests_to_retry_.size() >= broken_threshold) {
|
| + if (!force_run_broken_tests_ && tests_to_retry_.size() >= broken_threshold) {
|
| fprintf(stdout,
|
| "Too many failing tests (%" PRIuS "), skipping retries.\n",
|
| tests_to_retry_.size());
|
| @@ -755,6 +755,9 @@ bool TestLauncher::Init() {
|
| retry_limit_ = 3;
|
| }
|
|
|
| + if (command_line->HasSwitch(switches::kTestLauncherForceRunBrokenTests))
|
| + force_run_broken_tests_ = true;
|
| +
|
| if (command_line->HasSwitch(switches::kTestLauncherJobs)) {
|
| int jobs = -1;
|
| if (!StringToInt(command_line->GetSwitchValueASCII(
|
|
|