summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-15 20:39:27 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-15 20:39:27 +0000
commit4b833b4419eccb5e1bc30c6d3c8829ca952939e6 (patch)
tree13c0dc0d908129a0cf891cfcc9ccf5cf8cf9599b /net
parentdee6c70aa294bbd7df4c9b092af8995caa8a46fd (diff)
downloadchromium_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.cc23
-rw-r--r--net/tools/testserver/testserver.py39
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()