Index: tools/perf/benchmarks/pywebsocket_server.py |
diff --git a/tools/perf/benchmarks/pywebsocket_server.py b/tools/perf/benchmarks/pywebsocket_server.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..14024e879af340094127feb8e09cafd0fa1e0514 |
--- /dev/null |
+++ b/tools/perf/benchmarks/pywebsocket_server.py |
@@ -0,0 +1,39 @@ |
+# Copyright 2014 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. |
+ |
+import os |
+import sys |
+ |
+from telemetry.core import local_server |
+from telemetry.core import util |
+ |
+# This invokes pywebsocket's standalone.py under third_party/pywebsocket |
+class PywebsocketServerBackend(local_server.LocalServerBackend): |
+ def __init__(self): |
+ super(PywebsocketServerBackend, self).__init__() |
+ self.port = 8001 |
+ self.base_dir = os.path.relpath( |
+ os.path.join(util.GetChromiumSrcDir(), |
+ 'third_party', 'pywebsocket', 'src'), |
+ start=util.GetTelemetryDir()) |
+ |
+ def StartAndGetNamedPorts(self, args): |
+ return [local_server.NamedPort('http', self.port)] |
+ |
+ def ServeForever(self): |
+ os.chdir(self.base_dir) |
+ cmd = [ |
+ sys.executable, '-m', 'mod_pywebsocket.standalone', |
+ '--port', str(self.port), |
+ '--log-level', 'debug', |
+ '-d', 'example' |
+ ] |
+ os.execv(sys.executable, cmd) |
+ |
+class PywebsocketServer(local_server.LocalServer): |
+ def __init__(self): |
+ super(PywebsocketServer, self).__init__(PywebsocketServerBackend) |
+ |
+ def GetBackendStartupArgs(self): |
+ return {} |