| Index: content/public/test/test_launcher.cc
|
| diff --git a/content/public/test/test_launcher.cc b/content/public/test/test_launcher.cc
|
| index 4a2889107d754f20f098268162f7dc9d136a678a..597818dde3bee0fddbad6a82a4b30ca1b47bfc44 100644
|
| --- a/content/public/test/test_launcher.cc
|
| +++ b/content/public/test/test_launcher.cc
|
| @@ -130,8 +130,8 @@ class WrapperTestLauncherDelegate : public base::TestLauncherDelegate {
|
| const std::vector<std::string>& test_names) override;
|
|
|
| private:
|
| - void DoRunTest(base::TestLauncher* test_launcher,
|
| - const std::string& test_name);
|
| + void DoRunTests(base::TestLauncher* test_launcher,
|
| + const std::vector<std::string>& test_names);
|
|
|
| // Launches test named |test_name| using parallel launcher,
|
| // given result of PRE_ test |pre_test_result|.
|
| @@ -142,6 +142,7 @@ class WrapperTestLauncherDelegate : public base::TestLauncherDelegate {
|
| // Callback to receive result of a test.
|
| void GTestCallback(
|
| base::TestLauncher* test_launcher,
|
| + const std::vector<std::string>& test_names,
|
| const std::string& test_name,
|
| int exit_code,
|
| const base::TimeDelta& elapsed_time,
|
| @@ -254,7 +255,9 @@ size_t WrapperTestLauncherDelegate::RunTests(
|
| while (ContainsKey(reverse_dependent_test_map_, full_name))
|
| full_name = GetPreTestName(full_name);
|
|
|
| - DoRunTest(test_launcher, full_name);
|
| + std::vector<std::string> test_list;
|
| + test_list.push_back(full_name);
|
| + DoRunTests(test_launcher, test_list);
|
| }
|
|
|
| return test_names.size() + additional_tests_to_run_count;
|
| @@ -316,14 +319,21 @@ size_t WrapperTestLauncherDelegate::RetryTests(
|
| tests_to_run_now.push_back(full_name);
|
| }
|
|
|
| - for (size_t i = 0; i < tests_to_run_now.size(); i++)
|
| - DoRunTest(test_launcher, tests_to_run_now[i]);
|
| + DoRunTests(test_launcher, tests_to_run_now);
|
|
|
| return test_names_set.size();
|
| }
|
|
|
| -void WrapperTestLauncherDelegate::DoRunTest(base::TestLauncher* test_launcher,
|
| - const std::string& test_name) {
|
| +void WrapperTestLauncherDelegate::DoRunTests(
|
| + base::TestLauncher* test_launcher,
|
| + const std::vector<std::string>& test_names) {
|
| + if (test_names.empty())
|
| + return;
|
| +
|
| + std::string test_name(test_names.front());
|
| + std::vector<std::string> test_names_copy(
|
| + test_names.begin() + 1, test_names.end());
|
| +
|
| std::string test_name_no_pre(RemoveAnyPrePrefixes(test_name));
|
|
|
| base::CommandLine cmd_line(*base::CommandLine::ForCurrentProcess());
|
| @@ -359,6 +369,7 @@ void WrapperTestLauncherDelegate::DoRunTest(base::TestLauncher* test_launcher,
|
| base::Bind(&WrapperTestLauncherDelegate::GTestCallback,
|
| base::Unretained(this),
|
| test_launcher,
|
| + test_names_copy,
|
| test_name));
|
| }
|
|
|
| @@ -368,7 +379,9 @@ void WrapperTestLauncherDelegate::RunDependentTest(
|
| const base::TestResult& pre_test_result) {
|
| if (pre_test_result.status == base::TestResult::TEST_SUCCESS) {
|
| // Only run the dependent test if PRE_ test succeeded.
|
| - DoRunTest(test_launcher, test_name);
|
| + std::vector<std::string> test_list;
|
| + test_list.push_back(test_name);
|
| + DoRunTests(test_launcher, test_list);
|
| } else {
|
| // Otherwise skip the test.
|
| base::TestResult test_result;
|
| @@ -386,6 +399,7 @@ void WrapperTestLauncherDelegate::RunDependentTest(
|
|
|
| void WrapperTestLauncherDelegate::GTestCallback(
|
| base::TestLauncher* test_launcher,
|
| + const std::vector<std::string>& test_names,
|
| const std::string& test_name,
|
| int exit_code,
|
| const base::TimeDelta& elapsed_time,
|
| @@ -422,6 +436,8 @@ void WrapperTestLauncherDelegate::GTestCallback(
|
| }
|
|
|
| test_launcher->OnTestFinished(result);
|
| +
|
| + DoRunTests(test_launcher, test_names);
|
| }
|
|
|
| } // namespace
|
|
|