Title: [277782] trunk/Tools
Revision
277782
Author
jbed...@apple.com
Date
2021-05-20 07:45:30 -0700 (Thu, 20 May 2021)

Log Message

[webkitpy] Forward booted simulators to children processes
https://bugs.webkit.org/show_bug.cgi?id=225933
<rdar://problem/78169900>

Rubber-stamped by Aakash Jain.

* Scripts/webkitpy/api_tests/runner.py:
(setup_shard): Set DeviceManager global variable from parent process.
(Runner.command_for_port): Use Port's device manager instead of simulated device manager.
(Runner.run): Pass DeviceManager details to children processes.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (277781 => 277782)


--- trunk/Tools/ChangeLog	2021-05-20 13:48:42 UTC (rev 277781)
+++ trunk/Tools/ChangeLog	2021-05-20 14:45:30 UTC (rev 277782)
@@ -1,3 +1,16 @@
+2021-05-20  Jonathan Bedard  <jbed...@apple.com>
+
+        [webkitpy] Forward booted simulators to children processes
+        https://bugs.webkit.org/show_bug.cgi?id=225933
+        <rdar://problem/78169900>
+
+        Rubber-stamped by Aakash Jain.
+
+        * Scripts/webkitpy/api_tests/runner.py:
+        (setup_shard): Set DeviceManager global variable from parent process.
+        (Runner.command_for_port): Use Port's device manager instead of simulated device manager.
+        (Runner.run): Pass DeviceManager details to children processes.
+
 2021-05-20  Sam Sneddon  <gsnedd...@apple.com>
 
         Store whether a test is slow on TestInput

Modified: trunk/Tools/Scripts/webkitpy/api_tests/runner.py (277781 => 277782)


--- trunk/Tools/Scripts/webkitpy/api_tests/runner.py	2021-05-20 13:48:42 UTC (rev 277781)
+++ trunk/Tools/Scripts/webkitpy/api_tests/runner.py	2021-05-20 14:45:30 UTC (rev 277782)
@@ -29,12 +29,15 @@
 
 from webkitpy.common.iteration_compatibility import iteritems
 from webkitpy.port.server_process import ServerProcess, _log as server_process_logger
-from webkitpy.xcode.simulated_device import SimulatedDeviceManager
 
 _log = logging.getLogger(__name__)
 
 
-def setup_shard(port=None):
+def setup_shard(port=None, devices=None):
+    if devices and getattr(port, 'DEVICE_MANAGER', None):
+        port.DEVICE_MANAGER.AVAILABLE_DEVICES = devices.get('available_devices', [])
+        port.DEVICE_MANAGER.INITIALIZED_DEVICES = devices.get('initialized_devices', None)
+
     return _Worker.setup(port=port)
 
 
@@ -85,9 +88,9 @@
     def command_for_port(port, args):
         if (port.get_option('force')):
             args.append('--gtest_also_run_disabled_tests=1')
-        if 'simulator' in port.port_name:
-            assert SimulatedDeviceManager.INITIALIZED_DEVICES
-            return ['/usr/bin/xcrun', 'simctl', 'spawn', SimulatedDeviceManager.INITIALIZED_DEVICES[0].udid] + args
+        if getattr(port, 'DEVICE_MANAGER', None):
+            assert port.DEVICE_MANAGER.INITIALIZED_DEVICES
+            return ['/usr/bin/xcrun', 'simctl', 'spawn', port.DEVICE_MANAGER.INITIALIZED_DEVICES[0].udid] + args
         elif 'device' in port.port_name:
             raise RuntimeError('Running api tests on {} is not supported'.format(port.port_name))
         elif port.host.platform.is_win():
@@ -120,10 +123,16 @@
             Runner.instance = self
             self._num_workers = min(num_workers, len(shards))
 
+            devices = None
+            if getattr(self.port, 'DEVICE_MANAGER', None):
+                devices = dict(
+                    available_devices=self.port.DEVICE_MANAGER.AVAILABLE_DEVICES,
+                    initialized_devices=self.port.DEVICE_MANAGER.INITIALIZED_DEVICES,
+                )
+
             with TaskPool(
                 workers=self._num_workers,
-                setup=setup_shard, setupkwargs=dict(port=self.port),
-                teardown=teardown_shard,
+                setup=setup_shard, setupkwargs=dict(port=self.port, devices=devices), teardown=teardown_shard,
             ) as pool:
                 for name, tests in iteritems(shards):
                     pool.do(run_shard, name, *tests)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to