Title: [275152] trunk/Tools
Revision
275152
Author
dewei_...@apple.com
Date
2021-03-28 16:32:03 -0700 (Sun, 28 Mar 2021)

Log Message

Fix a bug that http server for run-benchmark script does not work on python3.
https://bugs.webkit.org/show_bug.cgi?id=223839

Reviewed by Ryosuke Niwa.

Fix encoding issue on run-benchmark http server.
Extract argument parser configure code for run-benchmark so that we can reuse it elsewhere.

* Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:
(ServerControl.render_POST):
* Scripts/webkitpy/benchmark_runner/run_benchmark.py:
(config_argument_parser): Extract argument parser configure code so that we can reuse it elsewhere.
(parse_args):
(main):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (275151 => 275152)


--- trunk/Tools/ChangeLog	2021-03-28 19:14:20 UTC (rev 275151)
+++ trunk/Tools/ChangeLog	2021-03-28 23:32:03 UTC (rev 275152)
@@ -1,3 +1,20 @@
+2021-03-27  Dewei Zhu  <dewei_...@apple.com>
+
+        Fix a bug that http server for run-benchmark script does not work on python3.
+        https://bugs.webkit.org/show_bug.cgi?id=223839
+
+        Reviewed by Ryosuke Niwa.
+
+        Fix encoding issue on run-benchmark http server.
+        Extract argument parser configure code for run-benchmark so that we can reuse it elsewhere.
+
+        * Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:
+        (ServerControl.render_POST):
+        * Scripts/webkitpy/benchmark_runner/run_benchmark.py:
+        (config_argument_parser): Extract argument parser configure code so that we can reuse it elsewhere.
+        (parse_args):
+        (main):
+
 2021-03-28  Sam Weinig  <wei...@apple.com>
 
         Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports

Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py (275151 => 275152)


--- trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py	2021-03-28 19:14:20 UTC (rev 275151)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py	2021-03-28 23:32:03 UTC (rev 275152)
@@ -31,7 +31,7 @@
 
     def render_POST(self, request):
         _log.info("Serving request %s" % request)
-        sys.stdout.write(request.content.read())
+        sys.stdout.write(request.content.read().decode('utf-8'))
         sys.stdout.flush()
         reactor.stop()
         return 'OK'
@@ -45,7 +45,7 @@
     args = parser.parse_args()
     web_root = static.File(args.web_root)
     serverControl = ServerControl()
-    web_root.putChild('shutdown', serverControl)
-    web_root.putChild('report', serverControl)
+    web_root.putChild('shutdown'.encode('utf-8'), serverControl)
+    web_root.putChild('report'.encode('utf-8'), serverControl)
     reactor.listenTCP(args.port, server.Site(web_root), interface=args.interface)
     reactor.run()

Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py (275151 => 275152)


--- trunk/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py	2021-03-28 19:14:20 UTC (rev 275151)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py	2021-03-28 23:32:03 UTC (rev 275152)
@@ -31,7 +31,7 @@
     return 'safari'
 
 
-def parse_args():
+def config_argument_parser():
     parser = argparse.ArgumentParser(description='Run browser based performance benchmarks. To run a single benchmark in the recommended way, use run-benchmark --plan. To see the vailable benchmarks, use run-benchmark --list-plans.')
     mutual_group = parser.add_mutually_exclusive_group(required=True)
     mutual_group.add_argument('--plan', help='Run a specific benchmark plan (e.g. speedometer, jetstream).')
@@ -54,6 +54,13 @@
     group.add_argument('--browser-path', help='Specify the path to a non-default copy of the target browser as a path to the .app.')
     group.add_argument('--build-directory', dest='build_dir', help='Path to the browser executable (e.g. WebKitBuild/Release/).')
 
+    return parser
+
+
+# FIXME: Remove default arguments when all dependent scripts adopt this change.
+def parse_args(parser=None):
+    if parser is None:
+        parser = config_argument_parser()
     args = parser.parse_args()
 
     if args.debug:
@@ -126,4 +133,4 @@
 
 
 def main():
-    return start(parse_args())
+    return start(parse_args(config_argument_parser()))
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to