Title: [278332] trunk/Tools
- Revision
- 278332
- Author
- jbed...@apple.com
- Date
- 2021-06-01 16:23:21 -0700 (Tue, 01 Jun 2021)
Log Message
[run-webkit-tests] Move helper out of Port instance
https://bugs.webkit.org/show_bug.cgi?id=226344
<rdar://problem/78575542>
Reviewed by Dewei Zhu.
The "helper" is a popen object, which are not pickleable, and cannot
belong to an instantiated port object.
* Scripts/webkitpy/port/base.py:
(Port): Make helper class variable.
(Port.__init__):
(Port.stop_helper): All classes should share the same code to stop the helper process.
* Scripts/webkitpy/port/mac.py:
(MacPort.start_helper): Use class variable.
(MacPort.stop_helper): Moved to base class..
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (278331 => 278332)
--- trunk/Tools/ChangeLog 2021-06-01 22:36:56 UTC (rev 278331)
+++ trunk/Tools/ChangeLog 2021-06-01 23:23:21 UTC (rev 278332)
@@ -1,3 +1,22 @@
+2021-06-01 Jonathan Bedard <jbed...@apple.com>
+
+ [run-webkit-tests] Move helper out of Port instance
+ https://bugs.webkit.org/show_bug.cgi?id=226344
+ <rdar://problem/78575542>
+
+ Reviewed by Dewei Zhu.
+
+ The "helper" is a popen object, which are not pickleable, and cannot
+ belong to an instantiated port object.
+
+ * Scripts/webkitpy/port/base.py:
+ (Port): Make helper class variable.
+ (Port.__init__):
+ (Port.stop_helper): All classes should share the same code to stop the helper process.
+ * Scripts/webkitpy/port/mac.py:
+ (MacPort.start_helper): Use class variable.
+ (MacPort.stop_helper): Moved to base class..
+
2021-06-01 Fujii Hironori <hironori.fu...@sony.com>
Sync Tools/win/DLLLauncher/DLLLauncherMain.cpp with Source/_javascript_Core/shell/DLLLauncherMain.cpp
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py (278331 => 278332)
--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py 2021-06-01 22:36:56 UTC (rev 278331)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py 2021-06-01 23:23:21 UTC (rev 278332)
@@ -575,7 +575,6 @@
return False
_log.debug("Restarting helper")
- self._port.stop_helper()
self._options.pixel_tests = True
return self._port.start_helper(prefer_integrated_gpu=self._options.prefer_integrated_gpu)
Modified: trunk/Tools/Scripts/webkitpy/port/base.py (278331 => 278332)
--- trunk/Tools/Scripts/webkitpy/port/base.py 2021-06-01 22:36:56 UTC (rev 278331)
+++ trunk/Tools/Scripts/webkitpy/port/base.py 2021-06-01 23:23:21 UTC (rev 278332)
@@ -81,6 +81,8 @@
DEVICE_TYPE = None
DEFAULT_DEVICE_TYPES = []
+ helper = None
+
@classmethod
def determine_full_port_name(cls, host, options, port_name):
"""Return a fully-specified port name that can be used to construct objects."""
@@ -115,7 +117,6 @@
self._config = port_config.Config(self._executive, self._filesystem, self.port_name)
self.pretty_patch = PrettyPatch(self._executive, self.path_from_webkit_base(), self._filesystem)
- self._helper = None
self._http_server = None
self._websocket_server = None
self._websocket_secure_server = None
@@ -958,9 +959,16 @@
def stop_helper(self):
"""Shut down the test helper if it is running. Do nothing if
- it isn't, or it isn't available. If a port overrides start_helper()
- it must override this routine as well."""
- pass
+ it isn't, or it isn't available."""
+ if Port.helper:
+ _log.debug("Stopping LayoutTestHelper")
+ try:
+ Port.helper.stdin.write(b"x\n")
+ Port.helper.stdin.close()
+ Port.helper.wait()
+ except IOError as e:
+ _log.debug("IOError raised while stopping helper: %s" % str(e))
+ Port.helper = None
def stop_http_server(self):
"""Shut down the http server if it is running. Do nothing if it isn't."""
Modified: trunk/Tools/Scripts/webkitpy/port/mac.py (278331 => 278332)
--- trunk/Tools/Scripts/webkitpy/port/mac.py 2021-06-01 22:36:56 UTC (rev 278331)
+++ trunk/Tools/Scripts/webkitpy/port/mac.py 2021-06-01 23:23:21 UTC (rev 278332)
@@ -37,6 +37,7 @@
from webkitpy.common.system.executive import ScriptError
from webkitpy.common.version_name_map import PUBLIC_TABLE, INTERNAL_TABLE
from webkitpy.common.version_name_map import VersionNameMap
+from webkitpy.port.base import Port
from webkitpy.port.config import apple_additions, Config
from webkitpy.port.darwin import DarwinPort
@@ -245,6 +246,8 @@
return min(supportable_instances, default_count)
def start_helper(self, pixel_tests=False, prefer_integrated_gpu=False):
+ self.stop_helper()
+
helper_path = self._path_to_helper()
if not helper_path:
_log.error("No path to LayoutTestHelper binary")
@@ -253,9 +256,9 @@
arguments = [helper_path, '--install-color-profile']
if prefer_integrated_gpu:
arguments.append('--prefer-integrated-gpu')
- self._helper = self._executive.popen(arguments,
+ Port.helper = self._executive.popen(arguments,
stdin=self._executive.PIPE, stdout=self._executive.PIPE, stderr=None)
- is_ready = self._helper.stdout.readline()
+ is_ready = Port.helper.stdout.readline()
if not is_ready.startswith(b'ready'):
_log.error("LayoutTestHelper could not start")
return False
@@ -272,17 +275,6 @@
if e.exit_code != 1:
raise e
- def stop_helper(self):
- if self._helper:
- _log.debug("Stopping LayoutTestHelper")
- try:
- self._helper.stdin.write(b"x\n")
- self._helper.stdin.close()
- self._helper.wait()
- except IOError as e:
- _log.debug("IOError raised while stopping helper: %s" % str(e))
- self._helper = None
-
def logging_patterns_to_strip(self):
logging_patterns = []
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes