diff options
author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-15 20:39:27 +0000 |
---|---|---|
committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-15 20:39:27 +0000 |
commit | 4b833b4419eccb5e1bc30c6d3c8829ca952939e6 (patch) | |
tree | 13c0dc0d908129a0cf891cfcc9ccf5cf8cf9599b /net | |
parent | dee6c70aa294bbd7df4c9b092af8995caa8a46fd (diff) | |
download | chromium_src-4b833b4419eccb5e1bc30c6d3c8829ca952939e6.zip chromium_src-4b833b4419eccb5e1bc30c6d3c8829ca952939e6.tar.gz chromium_src-4b833b4419eccb5e1bc30c6d3c8829ca952939e6.tar.bz2 |
GTTF: Make the parallel launcher use different ports for test https servers for different shards.
BUG=54098
TEST=none
Review URL: http://codereview.chromium.org/3452001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59547 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/test/test_server.cc | 23 | ||||
-rw-r--r-- | net/tools/testserver/testserver.py | 39 |
2 files changed, 21 insertions, 41 deletions
diff --git a/net/test/test_server.cc b/net/test/test_server.cc index 4456993..36227cf 100644 --- a/net/test/test_server.cc +++ b/net/test/test_server.cc @@ -14,6 +14,7 @@ #include "net/base/x509_certificate.h" #endif +#include "base/command_line.h" #include "base/file_util.h" #include "base/leak_annotations.h" #include "base/logging.h" @@ -37,10 +38,12 @@ const int kServerConnectionAttempts = 10; // Connection timeout in milliseconds for tests. const int kServerConnectionTimeoutMs = 1000; -int GetPort(net::TestServer::Type type) { +const char kTestServerShardFlag[] = "test-server-shard"; + +int GetPortBase(net::TestServer::Type type) { switch (type) { case net::TestServer::TYPE_FTP: - return 1338; + return 3117; case net::TestServer::TYPE_HTTP: return 1337; case net::TestServer::TYPE_HTTPS: @@ -55,6 +58,22 @@ int GetPort(net::TestServer::Type type) { return -1; } +int GetPort(net::TestServer::Type type) { + int port = GetPortBase(type); + if (CommandLine::ForCurrentProcess()->HasSwitch(kTestServerShardFlag)) { + std::string shard_str(CommandLine::ForCurrentProcess()->GetSwitchValueASCII( + kTestServerShardFlag)); + int shard = -1; + if (base::StringToInt(shard_str, &shard)) { + port += shard; + } else { + LOG(FATAL) << "Got invalid " << kTestServerShardFlag << " flag value. " + << "An integer is expected."; + } + } + return port; +} + std::string GetHostname(net::TestServer::Type type) { if (type == net::TestServer::TYPE_HTTPS_MISMATCHED_HOSTNAME) { // Return a different hostname string that resolves to the same hostname. diff --git a/net/tools/testserver/testserver.py b/net/tools/testserver/testserver.py index 6ab36df..8a864a8 100644 --- a/net/tools/testserver/testserver.py +++ b/net/tools/testserver/testserver.py @@ -138,13 +138,11 @@ class TestPageHandler(BaseHTTPServer.BaseHTTPRequestHandler): self.MultipartHandler, self.DefaultResponseHandler] self._post_handlers = [ - self.WriteFile, self.EchoTitleHandler, self.EchoAllHandler, self.ChromiumSyncCommandHandler, self.EchoHandler] + self._get_handlers self._put_handlers = [ - self.WriteFile, self.EchoTitleHandler, self.EchoAllHandler, self.EchoHandler] + self._get_handlers @@ -486,32 +484,6 @@ class TestPageHandler(BaseHTTPServer.BaseHTTPRequestHandler): self.wfile.write(request) return True - def WriteFile(self): - """This is handler dumps the content of POST/PUT request to a disk file - into the data_dir/dump. Sub-directories are not supported.""" - - prefix='/writefile/' - if not self.path.startswith(prefix): - return False - - file_name = self.path[len(prefix):] - - # do not allow fancy chars in file name - re.sub('[^a-zA-Z0-9_.-]+', '', file_name) - if len(file_name) and file_name[0] != '.': - path = os.path.join(self.server.data_dir, 'dump', file_name); - length = int(self.headers.getheader('content-length')) - request = self.rfile.read(length) - f = open(path, "wb") - f.write(request); - f.close() - - self.send_response(200) - self.send_header('Content-type', 'text/html') - self.end_headers() - self.wfile.write('<html>%s</html>' % file_name) - return True - def EchoTitleHandler(self): """This handler is like Echo, but sets the page title to the request.""" @@ -1159,15 +1131,6 @@ class TestPageHandler(BaseHTTPServer.BaseHTTPRequestHandler): self.wfile.write('Use <pre>%s?http://dest...</pre>' % redirect_name) self.wfile.write('</body></html>') -def MakeDumpDir(data_dir): - """Create directory named 'dump' where uploaded data via HTTP POST/PUT - requests will be stored. If the directory already exists all files and - subdirectories will be deleted.""" - dump_dir = os.path.join(data_dir, 'dump'); - if os.path.isdir(dump_dir): - shutil.rmtree(dump_dir) - os.mkdir(dump_dir) - def MakeDataDir(): if options.data_dir: if not os.path.isdir(options.data_dir): @@ -1234,8 +1197,6 @@ def main(options, args): server.file_root_url = options.file_root_url server._sync_handler = None - MakeDumpDir(server.data_dir) - # means FTP Server else: my_data_dir = MakeDataDir() |