WebKit Bugzilla
Attachment 370711 Details for
Bug 198247
: Limit run-benchmark http server to specific interface.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-198247-20190527192135.patch (text/plain), 5.44 KB, created by
dewei_zhu
on 2019-05-27 19:21:35 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
dewei_zhu
Created:
2019-05-27 19:21:35 PDT
Size:
5.44 KB
patch
obsolete
>Subversion Revision: 245756 >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 01011fd55370e4eef3c60ca174919a4dd65d8c06..e99e8235113afb615511f18a6d578fc684f7241e 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,24 @@ >+2019-05-25 Dewei Zhu <dewei_zhu@apple.com> >+ >+ Limit run-benchmark http server to specific interface. >+ https://bugs.webkit.org/show_bug.cgi?id=198247 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add '--interface' option to 'twisted_http_server.py'. >+ 'SimpleHTTPServerDriver' should specify interface for http server. >+ Update regex that determines http server port from 'lsof' output to support ipv6 address. >+ >+ * Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py: >+ Added '--interface' argument. >+ * Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: >+ Limited http server to a specific interfce. >+ Added '-P' option to 'lsof' invocation to inhibits the conversion of port numbers to port name so script won't >+ fail if it's listening on a 'well-known' port. >+ Abstracted '_check_http_server_is_running' to allow potential child class to have its own implementation. >+ (SimpleHTTPServerDriver.serve): Updated regex that determines http server port from 'lsof' output to support ipv6 address. >+ (SimpleHTTPServerDriver.kill_server): Added null check for 'self._server_process'. >+ > 2019-05-24 Yusuke Suzuki <ysuzuki@apple.com> > > Make display-profiler-output work with newer HighLine >diff --git a/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py b/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py >index ed427633f87be41d20b3e97d263b7c0a15483b4f..af8d642dff90ffd43e3857cebaee8405a9b23622 100644 >--- a/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py >+++ b/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py >@@ -40,10 +40,11 @@ if __name__ == '__main__': > parser = argparse.ArgumentParser(description='python twisted_http_server.py web_root') > parser.add_argument('web_root') > parser.add_argument('--port', type=int, default=0) >+ parser.add_argument('--interface', default='') > args = parser.parse_args() > web_root = static.File(args.web_root) > serverControl = ServerControl() > web_root.putChild('shutdown', serverControl) > web_root.putChild('report', serverControl) >- reactor.listenTCP(args.port, server.Site(web_root)) >+ reactor.listenTCP(args.port, server.Site(web_root), interface=args.interface) > reactor.run() >diff --git a/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py >index 937b71dc78ce4ae6baff388ed4f22e54bc4ea03a..aa1821e125fddea6fa2ee1a99d5d40a63d8de001 100644 >--- a/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py >+++ b/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py >@@ -30,7 +30,10 @@ class SimpleHTTPServerDriver(HTTPServerDriver): > def serve(self, web_root): > _log.info('Launching an http server') > http_server_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "http_server/twisted_http_server.py") >- self._server_process = subprocess.Popen(["python", http_server_path, web_root], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) >+ interface_args = [] >+ if self._ip: >+ interface_args.extend(['--interface', self._ip]) >+ self._server_process = subprocess.Popen(["python", http_server_path, web_root] + interface_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) > > max_attempt = 5 > interval = 0.5 >@@ -51,8 +54,8 @@ class SimpleHTTPServerDriver(HTTPServerDriver): > except ImportError: > for attempt in xrange(max_attempt): > try: >- output = subprocess.check_output(['/usr/sbin/lsof', '-a', '-iTCP', '-sTCP:LISTEN', '-p', str(self._server_process.pid)]) >- self._server_port = int(re.search('TCP \*:(\d+) \(LISTEN\)', output).group(1)) >+ output = subprocess.check_output(['/usr/sbin/lsof', '-a', '-P', '-iTCP', '-sTCP:LISTEN', '-p', str(self._server_process.pid)]) >+ self._server_port = int(re.search('TCP .*:(\d+) \(LISTEN\)', output).group(1)) > if self._server_port: > _log.info('HTTP Server is serving at port: %d', self._server_port) > break >@@ -63,7 +66,10 @@ class SimpleHTTPServerDriver(HTTPServerDriver): > interval *= 2 > else: > raise Exception("Cannot listen to server, max tries exceeded") >+ self._check_http_server_is_running() > >+ def _check_http_server_is_running(self): >+ max_attempt = 5 > # Wait for server to be up completely before exiting > for attempt in xrange(max_attempt): > try: >@@ -84,6 +90,8 @@ class SimpleHTTPServerDriver(HTTPServerDriver): > > def kill_server(self): > try: >+ if not self._server_process: >+ return > if self._server_process.poll() is None: > self._server_process.terminate() > except OSError as error:
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
rniwa
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 198247
:
370635
| 370711