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( |