| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "net/test/local_test_server.h" | 5 #include "net/test/local_test_server.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 } | 87 } |
| 88 | 88 |
| 89 testserver_dir = testserver_dir | 89 testserver_dir = testserver_dir |
| 90 .Append(FILE_PATH_LITERAL("net")) | 90 .Append(FILE_PATH_LITERAL("net")) |
| 91 .Append(FILE_PATH_LITERAL("tools")) | 91 .Append(FILE_PATH_LITERAL("tools")) |
| 92 .Append(FILE_PATH_LITERAL("testserver")); | 92 .Append(FILE_PATH_LITERAL("testserver")); |
| 93 *directory = testserver_dir; | 93 *directory = testserver_dir; |
| 94 return true; | 94 return true; |
| 95 } | 95 } |
| 96 | 96 |
| 97 bool LocalTestServer::GetTestServerPath(FilePath* testserver_path) const { |
| 98 if (!GetTestServerDirectory(testserver_path)) |
| 99 return false; |
| 100 *testserver_path = testserver_path->Append(FILE_PATH_LITERAL( |
| 101 "testserver.py")); |
| 102 return true; |
| 103 } |
| 104 |
| 97 bool LocalTestServer::Start() { | 105 bool LocalTestServer::Start() { |
| 98 // Get path to Python server script. | 106 // Get path to Python server script. |
| 99 FilePath testserver_path; | 107 FilePath testserver_path; |
| 100 if (!GetTestServerDirectory(&testserver_path)) | 108 if (!GetTestServerPath(&testserver_path)) |
| 101 return false; | 109 return false; |
| 102 testserver_path = | |
| 103 testserver_path.Append(FILE_PATH_LITERAL("testserver.py")); | |
| 104 | 110 |
| 105 if (!SetPythonPath()) | 111 if (!SetPythonPath()) |
| 106 return false; | 112 return false; |
| 107 | 113 |
| 108 if (!LaunchPython(testserver_path)) | 114 if (!LaunchPython(testserver_path)) |
| 109 return false; | 115 return false; |
| 110 | 116 |
| 111 if (!WaitToStart()) { | 117 if (!WaitToStart()) { |
| 112 Stop(); | 118 Stop(); |
| 113 return false; | 119 return false; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 if (!PathService::Get(base::DIR_SOURCE_ROOT, &src_dir)) | 158 if (!PathService::Get(base::DIR_SOURCE_ROOT, &src_dir)) |
| 153 return false; | 159 return false; |
| 154 SetResourcePath(src_dir.Append(document_root), | 160 SetResourcePath(src_dir.Append(document_root), |
| 155 src_dir.AppendASCII("net") | 161 src_dir.AppendASCII("net") |
| 156 .AppendASCII("data") | 162 .AppendASCII("data") |
| 157 .AppendASCII("ssl") | 163 .AppendASCII("ssl") |
| 158 .AppendASCII("certificates")); | 164 .AppendASCII("certificates")); |
| 159 return true; | 165 return true; |
| 160 } | 166 } |
| 161 | 167 |
| 168 bool LocalTestServer::SetPythonPath() const { |
| 169 return SetPythonPathStatic(); |
| 170 } |
| 171 |
| 162 // static | 172 // static |
| 163 bool LocalTestServer::SetPythonPath() { | 173 bool LocalTestServer::SetPythonPathStatic() { |
| 164 FilePath third_party_dir; | 174 FilePath third_party_dir; |
| 165 if (!PathService::Get(base::DIR_SOURCE_ROOT, &third_party_dir)) { | 175 if (!PathService::Get(base::DIR_SOURCE_ROOT, &third_party_dir)) { |
| 166 LOG(ERROR) << "Failed to get DIR_SOURCE_ROOT"; | 176 LOG(ERROR) << "Failed to get DIR_SOURCE_ROOT"; |
| 167 return false; | 177 return false; |
| 168 } | 178 } |
| 169 third_party_dir = third_party_dir.AppendASCII("third_party"); | 179 third_party_dir = third_party_dir.AppendASCII("third_party"); |
| 170 | 180 |
| 171 // For simplejson. (simplejson, unlike all the other Python modules | 181 // For simplejson. (simplejson, unlike all the other Python modules |
| 172 // we include, doesn't have an extra 'simplejson' directory, so we | 182 // we include, doesn't have an extra 'simplejson' directory, so we |
| 173 // need to include its parent directory, i.e. third_party_dir). | 183 // need to include its parent directory, i.e. third_party_dir). |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 std::string("--auth-token") + "=" + BaseTestServer::kGDataAuthToken); | 258 std::string("--auth-token") + "=" + BaseTestServer::kGDataAuthToken); |
| 249 break; | 259 break; |
| 250 default: | 260 default: |
| 251 NOTREACHED(); | 261 NOTREACHED(); |
| 252 return false; | 262 return false; |
| 253 } | 263 } |
| 254 | 264 |
| 255 return true; | 265 return true; |
| 256 } | 266 } |
| 257 | 267 |
| 268 void LocalTestServer::AddPythonArguments(const FilePath& testserver_path, |
| 269 CommandLine* command_line) const { |
| 270 // Make python stdout and stderr unbuffered, to prevent incomplete stderr on |
| 271 // win bots, and also fix mixed up ordering of stdout and stderr. |
| 272 command_line->AppendSwitch("-u"); |
| 273 |
| 274 command_line->AppendArgPath(testserver_path); |
| 275 } |
| 276 |
| 258 } // namespace net | 277 } // namespace net |
| OLD | NEW |