Attempt to fix timeouts on iOS Simulator layout tests
authorddkilzer@apple.com <ddkilzer@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Mar 2015 14:27:51 +0000 (14:27 +0000)
committerddkilzer@apple.com <ddkilzer@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Mar 2015 14:27:51 +0000 (14:27 +0000)
* Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort.setup_test_run): Most layout test runs on iOS
Simulator end after the first 50 tests time out.  Some analysis
this past weekend shows that the 'Booted' status in the output
of `xcrun simctl list` is not sufficient (and watching the test
run shows that SpringBoard hasn't fully started to the point
where it's displaying icons on the home screen).  The workaround
until we have a better fix is to add an arbitrary timeout to let
SpringBoard finish launching.  In practice, 15 seconds is
probably enough, but 30 seconds should nearly always work.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@181267 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/Scripts/webkitpy/port/ios.py

index 15f4ef5..ab59f64 100644 (file)
@@ -1,3 +1,18 @@
+2015-03-09  David Kilzer  <ddkilzer@apple.com>
+
+        Attempt to fix timeouts on iOS Simulator layout tests
+
+        * Scripts/webkitpy/port/ios.py:
+        (IOSSimulatorPort.setup_test_run): Most layout test runs on iOS
+        Simulator end after the first 50 tests time out.  Some analysis
+        this past weekend shows that the 'Booted' status in the output
+        of `xcrun simctl list` is not sufficient (and watching the test
+        run shows that SpringBoard hasn't fully started to the point
+        where it's displaying icons on the home screen).  The workaround
+        until we have a better fix is to add an arbitrary timeout to let
+        SpringBoard finish launching.  In practice, 15 seconds is
+        probably enough, but 30 seconds should nearly always work.
+
 2015-03-09  Per Arne Vollan  <peavo@outlook.com>
 
         Unreviewed. Add myself as a committer.
index da21c3b..f477410 100644 (file)
@@ -209,6 +209,11 @@ class IOSSimulatorPort(Port):
             '--args', '-CurrentDeviceUDID', device_udid])
         Simulator.wait_until_device_is_in_state(device_udid, Simulator.DeviceState.BOOTED)
 
+        # FIXME: Pause here until SpringBoard finishes launching to workaround <rdar://problem/20000383>.
+        boot_delay = 30
+        _log.debug('Waiting {seconds} seconds for iOS Simulator to finish booting ...'.format(seconds=boot_delay))
+        time.sleep(boot_delay)
+
     def clean_up_test_run(self):
         super(IOSSimulatorPort, self).clean_up_test_run()
         fifos = [path for path in os.listdir('/tmp') if re.search('org.webkit.(DumpRenderTree|WebKitTestRunner).*_(IN|OUT|ERROR)', path)]