OLD | NEW |
| (Empty) |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 | |
5 import os | |
6 import sys | |
7 | |
8 from core import path_util | |
9 | |
10 from telemetry.core import local_server | |
11 from telemetry.core import util | |
12 | |
13 | |
14 # This invokes pywebsocket's standalone.py under third_party/pywebsocket | |
15 class PywebsocketServerBackend(local_server.LocalServerBackend): | |
16 | |
17 def __init__(self): | |
18 super(PywebsocketServerBackend, self).__init__() | |
19 self.port = 8001 | |
20 self.base_dir = os.path.relpath( | |
21 os.path.join(path_util.GetChromiumSrcDir(), | |
22 'third_party', 'pywebsocket', 'src'), | |
23 start=util.GetTelemetryDir()) | |
24 | |
25 def StartAndGetNamedPorts(self, args): | |
26 return [local_server.NamedPort('http', self.port)] | |
27 | |
28 def ServeForever(self): | |
29 os.chdir(self.base_dir) | |
30 cmd = [ | |
31 sys.executable, '-m', 'mod_pywebsocket.standalone', | |
32 '--port', str(self.port), | |
33 '--log-level', 'debug', | |
34 '-d', 'example' | |
35 ] | |
36 os.execv(sys.executable, cmd) | |
37 | |
38 | |
39 class PywebsocketServer(local_server.LocalServer): | |
40 | |
41 def __init__(self): | |
42 super(PywebsocketServer, self).__init__(PywebsocketServerBackend) | |
43 | |
44 def GetBackendStartupArgs(self): | |
45 return {} | |
OLD | NEW |