diff options
author | carlosk <carlosk@chromium.org> | 2015-08-26 07:12:15 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-26 14:12:58 +0000 |
commit | dd40a439015f8824c0ffa988a5ae794f3138e744 (patch) | |
tree | 6c5af991ba0a14dd0d17d6a1141f71781e4d3414 /base | |
parent | ceef7c81109eb217eb1e579a0798cd22b3ab59f8 (diff) | |
download | chromium_src-dd40a439015f8824c0ffa988a5ae794f3138e744.zip chromium_src-dd40a439015f8824c0ffa988a5ae794f3138e744.tar.gz chromium_src-dd40a439015f8824c0ffa988a5ae794f3138e744.tar.bz2 |
Add test launcher switch to avoid early termination due to broken tests.
Due to big changes to Chromium done in the context of the PlzNavigate
project, many tests are broken when we enable it. But getting a precise
number of broken tests is difficult because the test launcher will early
terminate due to too many broken tests. Hence my adding this option,
disabled by default, of forcing the test launcher to finish running even
if many tests fail.
BUG=504347
Review URL: https://codereview.chromium.org/1307563002
Cr-Commit-Position: refs/heads/master@{#345605}
Diffstat (limited to 'base')
-rw-r--r-- | base/test/launcher/test_launcher.cc | 6 | ||||
-rw-r--r-- | base/test/launcher/test_launcher.h | 3 | ||||
-rw-r--r-- | base/test/test_switches.cc | 4 | ||||
-rw-r--r-- | base/test/test_switches.h | 1 |
4 files changed, 13 insertions, 1 deletions
diff --git a/base/test/launcher/test_launcher.cc b/base/test/launcher/test_launcher.cc index 4cf2d1d..8e7b7dbe 100644 --- a/base/test/launcher/test_launcher.cc +++ b/base/test/launcher/test_launcher.cc @@ -456,6 +456,7 @@ 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), @@ -619,7 +620,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); @@ -755,6 +756,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( diff --git a/base/test/launcher/test_launcher.h b/base/test/launcher/test_launcher.h index bd86da5..1fd213e 100644 --- a/base/test/launcher/test_launcher.h +++ b/base/test/launcher/test_launcher.h @@ -181,6 +181,9 @@ class TestLauncher { // Maximum number of retries per iteration. size_t retry_limit_; + // If true will not early exit even if too many tests are broken. + bool force_run_broken_tests_; + // Tests to retry in this iteration. std::set<std::string> tests_to_retry_; diff --git a/base/test/test_switches.cc b/base/test/test_switches.cc index 84aa53c..4039158 100644 --- a/base/test/test_switches.cc +++ b/base/test/test_switches.cc @@ -18,6 +18,10 @@ const char switches::kTestLauncherBotMode[] = const char switches::kTestLauncherDebugLauncher[] = "test-launcher-debug-launcher"; +// Force running all requested tests even when too many errors occur. +const char switches::kTestLauncherForceRunBrokenTests[] = + "test-launcher-force-run-broken-tests"; + // Path to file containing test filter (one pattern per line). const char switches::kTestLauncherFilterFile[] = "test-launcher-filter-file"; diff --git a/base/test/test_switches.h b/base/test/test_switches.h index f145f1e..419b755 100644 --- a/base/test/test_switches.h +++ b/base/test/test_switches.h @@ -12,6 +12,7 @@ namespace switches { extern const char kTestLauncherBatchLimit[]; extern const char kTestLauncherBotMode[]; extern const char kTestLauncherDebugLauncher[]; +extern const char kTestLauncherForceRunBrokenTests[]; extern const char kTestLauncherFilterFile[]; extern const char kTestLauncherJobs[]; extern const char kTestLauncherListTests[]; |