diff options
author | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-14 01:10:24 +0000 |
---|---|---|
committer | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-14 01:10:24 +0000 |
commit | a40ca43033ac86cc3224d843c233a71e94e72dbf (patch) | |
tree | 3172d0bd0d9430a8f155df047c6b14d188557abc /net | |
parent | dc09efb7dd87597a7e4b5fe790d0ce3a2511380e (diff) | |
download | chromium_src-a40ca43033ac86cc3224d843c233a71e94e72dbf.zip chromium_src-a40ca43033ac86cc3224d843c233a71e94e72dbf.tar.gz chromium_src-a40ca43033ac86cc3224d843c233a71e94e72dbf.tar.bz2 |
Consolidate most CommandLine code across platforms.
Significant refactoring with some notable behavior changes:
1. Switches are appended preceding existing arguments (after other swtiches).
2. (Windows) command_line_string() is generated and properly quoted/escaped.
3. Appended switches will retain their (optional) included prefixes (--,-,/).
Notable internal changes (shouldn't affect behavior):
1. (Windows) Generate the cl string, instead of storing&updating the original.
2. Explicitly retain switch prefixes (--,-,/) (was automatic in init*/ctor).
Update (obvious) code expecting switches to be appended antecedent to args.
Add Nico's test from: codereview.chromium.org/6728016/.
An intermediary CL landed between patch set 3 and 4, see:
http://codereview.chromium.org/6596020
BUG=73195,67764
TEST=Commandline usage.
Review URL: http://codereview.chromium.org/6526040
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85360 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/test/test_server.cc | 25 | ||||
-rw-r--r-- | net/test/test_server_posix.cc | 5 | ||||
-rw-r--r-- | net/test/test_server_win.cc | 3 |
3 files changed, 17 insertions, 16 deletions
diff --git a/net/test/test_server.cc b/net/test/test_server.cc index 528d08e..bd24f73 100644 --- a/net/test/test_server.cc +++ b/net/test/test_server.cc @@ -342,9 +342,10 @@ bool TestServer::LoadTestRootCert() { } bool TestServer::AddCommandLineArguments(CommandLine* command_line) const { - command_line->AppendSwitchASCII("port", - base::IntToString(host_port_pair_.port())); - command_line->AppendSwitchPath("data-dir", document_root_); + command_line->AppendArg("--port=" + + base::IntToString(host_port_pair_.port())); + command_line->AppendArgNative(FILE_PATH_LITERAL("--data-dir=") + + document_root_.value()); if (logging::GetMinLogLevel() == logging::LOG_VERBOSE) { command_line->AppendArg("--log-to-console"); @@ -363,10 +364,11 @@ bool TestServer::AddCommandLineArguments(CommandLine* command_line) const { << " doesn't exist. Can't launch https server."; return false; } - command_line->AppendSwitchPath("https", certificate_path); + command_line->AppendArgNative(FILE_PATH_LITERAL("--https=") + + certificate_path.value()); if (https_options_.request_client_certificate) - command_line->AppendSwitch("ssl-client-auth"); + command_line->AppendArg("--ssl-client-auth"); for (std::vector<FilePath>::const_iterator it = https_options_.client_authorities.begin(); @@ -377,18 +379,19 @@ bool TestServer::AddCommandLineArguments(CommandLine* command_line) const { return false; } - command_line->AppendSwitchPath("ssl-client-ca", *it); + command_line->AppendArgNative(FILE_PATH_LITERAL("--ssl-client-ca=") + + it->value()); } - const char kBulkCipherSwitch[] = "ssl-bulk-cipher"; + const std::string kBulkCipherSwitch("--ssl-bulk-cipher"); if (https_options_.bulk_ciphers & HTTPSOptions::BULK_CIPHER_RC4) - command_line->AppendSwitchASCII(kBulkCipherSwitch, "rc4"); + command_line->AppendArg(kBulkCipherSwitch + "=rc4"); if (https_options_.bulk_ciphers & HTTPSOptions::BULK_CIPHER_AES128) - command_line->AppendSwitchASCII(kBulkCipherSwitch, "aes128"); + command_line->AppendArg(kBulkCipherSwitch + "=aes128"); if (https_options_.bulk_ciphers & HTTPSOptions::BULK_CIPHER_AES256) - command_line->AppendSwitchASCII(kBulkCipherSwitch, "aes256"); + command_line->AppendArg(kBulkCipherSwitch + "=aes256"); if (https_options_.bulk_ciphers & HTTPSOptions::BULK_CIPHER_3DES) - command_line->AppendSwitchASCII(kBulkCipherSwitch, "3des"); + command_line->AppendArg(kBulkCipherSwitch + "=3des"); } return true; diff --git a/net/test/test_server_posix.cc b/net/test/test_server_posix.cc index de42fb3..10e5b8b 100644 --- a/net/test/test_server_posix.cc +++ b/net/test/test_server_posix.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -112,8 +112,7 @@ bool TestServer::LaunchPython(const FilePath& testserver_path) { base::file_handle_mapping_vector map_write_fd; map_write_fd.push_back(std::make_pair(pipefd[1], pipefd[1])); - python_command.AppendSwitchASCII("startup-pipe", - base::IntToString(pipefd[1])); + python_command.AppendArg("--startup-pipe=" + base::IntToString(pipefd[1])); // Try to kill any orphaned testserver processes that may be running. OrphanedTestServerFilter filter(testserver_path.value(), diff --git a/net/test/test_server_win.cc b/net/test/test_server_win.cc index 9fc13cd..96c899e 100644 --- a/net/test/test_server_win.cc +++ b/net/test/test_server_win.cc @@ -176,8 +176,7 @@ bool TestServer::LaunchPython(const FilePath& testserver_path) { // safe to truncate the handle (when passing it from 64-bit to // 32-bit) or sign-extend the handle (when passing it from 32-bit to // 64-bit)." - python_command.AppendSwitchASCII( - "startup-pipe", + python_command.AppendArg("--startup-pipe=" + base::IntToString(reinterpret_cast<uintptr_t>(child_write))); if (!LaunchTestServerAsJob(python_command, |