RESOLVED FIXED189702
webkitpy: Clobbering and building occurs multiple times for iOS Simulator ports
https://bugs.webkit.org/show_bug.cgi?id=189702
Summary webkitpy: Clobbering and building occurs multiple times for iOS Simulator ports
Jonathan Bedard
Reported 2018-09-18 10:28:05 PDT
Currently, we clobber old results and and build in the _set_up_run function, which is run multiple times per run for the iOS simulator.
Attachments
Patch (2.89 KB, patch)
2018-09-18 10:29 PDT, Jonathan Bedard
no flags
Jonathan Bedard
Comment 1 2018-09-18 10:28:16 PDT
Jonathan Bedard
Comment 2 2018-09-18 10:29:34 PDT
Jonathan Bedard
Comment 3 2018-09-18 10:43:33 PDT
Waiting for EWS since my local testing was limited.
WebKit Commit Bot
Comment 4 2018-09-18 13:10:41 PDT
Comment on attachment 350031 [details] Patch Clearing flags on attachment: 350031 Committed r236151: <https://trac.webkit.org/changeset/236151>
WebKit Commit Bot
Comment 5 2018-09-18 13:10:43 PDT
All reviewed patches have been landed. Closing bug.
Radar WebKit Bug Importer
Comment 6 2018-09-18 13:11:40 PDT
Daniel Bates
Comment 7 2018-09-22 20:06:06 PDT
Comment on attachment 350031 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=350031&action=review > Tools/Scripts/webkitpy/layout_tests/controllers/manager.py:-167 > - self._printer.write_update("Checking build ...") > - if not self._port.check_build(): > - _log.error("Build check failed") > - return False > - Does run-webkit-tests on Mac run the tests if you perform a clean build of the WebKit stack and not the tools? This removal does not seem correct or does not seem correct for Mac. What guarantees that LayoutTestHelper was built before we try to launch it below? Even if we are guaranteed it to be built in advance it seems unintuitive that we moved this logic from this function, used to setup a run, to the function that is responsible for running the test. Maybe we have to do this for iOS, but then it may be better to make iOS the exception that it is than to modify all ports to fit iOS's weird model of the world.
Daniel Bates
Comment 8 2018-09-22 20:08:56 PDT
Comment on attachment 350031 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=350031&action=review > Tools/Scripts/webkitpy/layout_tests/controllers/manager.py:240 > + if self._options.clobber_old_results: > + self._clobber_old_results() > + > + # Create the output directory if it doesn't already exist. > + self._port.host.filesystem.maybe_make_directory(self._results_directory) Similarly this seems unintuitive. If this is necessary to fix iOS then make iOS the exception (and have dedicated conditional branches or a dedicated code path) and not make a mess of the code for all the other ports.
Jonathan Bedard
Comment 9 2018-09-27 08:46:29 PDT
Comment on attachment 350031 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=350031&action=review >> Tools/Scripts/webkitpy/layout_tests/controllers/manager.py:-167 >> - > > Does run-webkit-tests on Mac run the tests if you perform a clean build of the WebKit stack and not the tools? This removal does not seem correct or does not seem correct for Mac. What guarantees that LayoutTestHelper was built before we try to launch it below? Even if we are guaranteed it to be built in advance it seems unintuitive that we moved this logic from this function, used to setup a run, to the function that is responsible for running the test. Maybe we have to do this for iOS, but then it may be better to make iOS the exception that it is than to modify all ports to fit iOS's weird model of the world. This function starts with an _. That indicates that it should be a private function and other classes shouldn't be calling it directly. This code wasn't removed, it was MOVED. We still run it. Just not multiple times. All this change does is move this code so we don't do this multiple times during a single instantiation of run-webkit-tests for iOS Simulator. Since we've already established long ago that a single instantiation of run-webkit-tests may contain multiple sequential runs, it doesn't make sense for this code to be in _set_up_run(...), we only need it to be run once per instantiation of run-webkit-test. It's also not just an iOS problem anymore because watchOS uses exactly the same model as iOS.
Note You need to log in before you can comment on or make changes to this bug.