OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 <algorithm> | 5 #include <algorithm> |
6 | 6 |
7 #include "base/at_exit.h" | 7 #include "base/at_exit.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/debug/debugger.h" | 9 #include "base/debug/debugger.h" |
10 #include "base/debug/stack_trace.h" | 10 #include "base/debug/stack_trace.h" |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 } | 102 } |
103 | 103 |
104 std::unique_ptr<content::TestState> PreRunTest( | 104 std::unique_ptr<content::TestState> PreRunTest( |
105 base::CommandLine* command_line, | 105 base::CommandLine* command_line, |
106 base::TestLauncher::LaunchOptions* test_launch_options) override { | 106 base::TestLauncher::LaunchOptions* test_launch_options) override { |
107 if (!mojo_test_connector_) { | 107 if (!mojo_test_connector_) { |
108 mojo_test_connector_ = | 108 mojo_test_connector_ = |
109 base::MakeUnique<MojoTestConnector>(ReadCatalogManifest(), config_); | 109 base::MakeUnique<MojoTestConnector>(ReadCatalogManifest(), config_); |
110 mojo_test_connector_->Init(); | 110 mojo_test_connector_->Init(); |
111 } | 111 } |
112 return mojo_test_connector_->PrepareForTest( | 112 return mojo_test_connector_->PrepareForTest(command_line, |
113 command_line, test_launch_options, | 113 test_launch_options); |
114 base::BindOnce(&MashTestLauncherDelegate::OnTestProcessLaunched, | |
115 base::Unretained(this))); | |
116 } | |
117 | |
118 void OnTestProcessLaunched() { | |
119 // Start default apps after chrome, as they may try to connect to chrome on | |
120 // startup. Attempt to connect once per test in case a previous test crashed | |
121 // mash_session. | |
122 mojo_test_connector_->StartService(mash::session::mojom::kServiceName); | |
123 } | 114 } |
124 | 115 |
125 void OnDoneRunningTests() override { | 116 void OnDoneRunningTests() override { |
126 // We have to shutdown this state here, while an AtExitManager is still | 117 // We have to shutdown this state here, while an AtExitManager is still |
127 // valid. | 118 // valid. |
128 mojo_test_connector_.reset(); | 119 mojo_test_connector_.reset(); |
129 } | 120 } |
130 | 121 |
131 std::unique_ptr<base::Value> ReadCatalogManifest() { | 122 std::unique_ptr<base::Value> ReadCatalogManifest() { |
132 std::string catalog_contents; | 123 std::string catalog_contents; |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 if (command_line->HasSwitch(content::kSingleProcessTestsFlag) && | 204 if (command_line->HasSwitch(content::kSingleProcessTestsFlag) && |
214 !command_line->HasSwitch(service_manager::switches::kServicePipeToken)) { | 205 !command_line->HasSwitch(service_manager::switches::kServicePipeToken)) { |
215 service_manager_connection_factory = | 206 service_manager_connection_factory = |
216 base::Bind(&CreateServiceManagerConnection, &delegate); | 207 base::Bind(&CreateServiceManagerConnection, &delegate); |
217 content::ServiceManagerConnection::SetFactoryForTest( | 208 content::ServiceManagerConnection::SetFactoryForTest( |
218 &service_manager_connection_factory); | 209 &service_manager_connection_factory); |
219 } | 210 } |
220 *exit_code = LaunchChromeTests(default_jobs, &delegate, argc, argv); | 211 *exit_code = LaunchChromeTests(default_jobs, &delegate, argc, argv); |
221 return true; | 212 return true; |
222 } | 213 } |
OLD | NEW |