summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/test/test_server.cc23
-rw-r--r--net/tools/testserver/testserver.py39
-rwxr-xr-xtools/parallel_launcher/parallel_launcher.py5
3 files changed, 25 insertions, 42 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()
diff --git a/tools/parallel_launcher/parallel_launcher.py b/tools/parallel_launcher/parallel_launcher.py
index 1e5f6ff..85e4182 100755
--- a/tools/parallel_launcher/parallel_launcher.py
+++ b/tools/parallel_launcher/parallel_launcher.py
@@ -71,7 +71,10 @@ class TestLauncher(object):
env = os.environ.copy()
env['GTEST_TOTAL_SHARDS'] = str(self._num_shards)
env['GTEST_SHARD_INDEX'] = str(self._shard)
- self._test = subprocess.Popen(args=self._args,
+
+ args = self._args + ['--test-server-shard=' + str(self._shard)]
+
+ self._test = subprocess.Popen(args=args,
executable=self._executable,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,