Changeset 235225 in webkit
- Timestamp:
- Aug 23, 2018, 8:51:14 AM (7 years ago)
- Location:
- trunk
- Files:
-
- 1 deleted
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/ChangeLog
r235174 r235225 1 2018-08-23 Youenn Fablet <youenn@apple.com> 2 3 Use "wpt serve" to launch WPT server 4 https://bugs.webkit.org/show_bug.cgi?id=188848 5 6 Reviewed by Ryosuke Niwa. 7 8 * resources/config.json: 9 Use config alias to serve http/wpt content as /WebKit/ 10 1 11 2018-08-22 Rob Buis <rbuis@igalia.com> 2 12 -
trunk/LayoutTests/imported/w3c/resources/config.json
r229937 r235225 5 5 "aliases": [ 6 6 {"url-path": "/resources/testharnessreport.js", "local-dir":"../../../resources/"}, 7 {"url-path": "/resources/testharness.css", "local-dir":"../../../resources/"}], 7 {"url-path": "/resources/testharness.css", "local-dir":"../../../resources/"}, 8 {"url-path": "/WebKit/", "local-dir":"../../../http/wpt/"}], 8 9 "check_subdomains": false, 9 10 "log_level":"debug", -
trunk/Tools/ChangeLog
r235222 r235225 1 2018-08-23 Youenn Fablet <youenn@apple.com> 2 3 Use "wpt serve" to launch WPT server 4 https://bugs.webkit.org/show_bug.cgi?id=188848 5 6 Reviewed by Ryosuke Niwa. 7 8 Use "wpt serve" provided by WPT instead of using our custom launcher. 9 This simplifies things and will avoid future breakage. 10 Further simplify web_platform_test_server.py by removing no longer needed actions. 11 - Do not copy files but use alias 12 - Do not kill main pid, which leaves subprocesses alive, use interrupt instead. 13 - Stop enumerating subprocess pids. 14 15 * Scripts/webkitpy/common/system/executive_mock.py: 16 (MockExecutive.interrupt): 17 * Scripts/webkitpy/layout_tests/servers/web_platform_test_launcher.py: Removed. 18 * Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py: 19 (WebPlatformTestServer.__init__): 20 (WebPlatformTestServer.ports_to_forward): 21 (WebPlatformTestServer._prepare_config): 22 (WebPlatformTestServer._spawn_process): 23 (WebPlatformTestServer._stop_running_server): 24 1 25 2018-08-23 Jonathan Bedard <jbedard@apple.com> 2 26 -
trunk/Tools/Scripts/webkitpy/common/system/executive_mock.py
r231452 r235225 144 144 pass 145 145 146 def interrupt(self, pid): 147 pass 148 146 149 def popen(self, args, cwd=None, env=None, **kwargs): 147 150 self.calls.append(args) -
trunk/Tools/Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py
r229937 r235225 87 87 if not self._pid_file: 88 88 self._pid_file = self._filesystem.join(self._runtime_path, '%s.pid' % self._name) 89 self._servers_file = self._filesystem.join(self._runtime_path, '%s_servers.json' % (self._name))90 89 91 90 self._filesystem = port_obj.host.filesystem … … 93 92 self._doc_root = self._filesystem.join(self._layout_root, doc_root(port_obj)) 94 93 95 self._resources_files_to_copy = [] 94 self._doc_root_path = self._filesystem.join(self._layout_root, self._doc_root) 95 self._config_filename = self._filesystem.join(self._doc_root_path, "config.json") 96 96 97 current_dir_path = self._filesystem.abspath(self._filesystem.split(__file__)[0]) 98 self._start_cmd = ["python", self._filesystem.join(current_dir_path, "web_platform_test_launcher.py"), self._servers_file] 99 self._doc_root_path = self._filesystem.join(self._layout_root, self._doc_root) 97 wpt_file = self._filesystem.join(self._doc_root_path, "wpt.py") 98 self._start_cmd = ["python", wpt_file, "serve", "--config", self._config_filename] 100 99 101 100 self._mappings = [] … … 113 112 return [mapping['port'] for mapping in self._mappings] 114 113 115 def _copy_webkit_test_files(self): 116 _log.debug('Copying WebKit resources files') 117 for f in self._resources_files_to_copy: 118 webkit_filename = self._filesystem.join(self._layout_root, "resources", f) 119 if self._filesystem.isfile(webkit_filename): 120 self._filesystem.copyfile(webkit_filename, self._filesystem.join(self._doc_root, "resources", f)) 114 def _prepare_config(self): 115 self._filesystem.maybe_make_directory(self._output_dir) 116 self._output_log_path = self._filesystem.join(self._output_dir, self._log_file_name) 117 self._wsout = self._filesystem.open_text_file_for_writing(self._output_log_path) 118 121 119 _log.debug('Copying WebKit web platform server config.json') 122 120 config_wk_filename = self._filesystem.join(self._layout_root, "imported", "w3c", "resources", "config.json") 123 121 if self._filesystem.isfile(config_wk_filename): 124 122 config_json = self._filesystem.read_text_file(config_wk_filename).replace("%CERTS_DIR%", self._filesystem.join(self._output_dir, "_wpt_certs")) 125 self._filesystem.write_text_file(self._filesystem.join(self._doc_root, "config.json"), config_json) 126 127 wpt_testharnessjs_file = self._filesystem.join(self._doc_root, "resources", "testharness.js") 128 layout_tests_testharnessjs_file = self._filesystem.join(self._layout_root, "resources", "testharness.js") 129 if (not self._filesystem.compare(wpt_testharnessjs_file, layout_tests_testharnessjs_file)): 130 _log.warning("\n//////////\nWPT tests are not using the same testharness.js file as other WebKit Layout tests.\nWebKit testharness.js might need to be updated according WPT testharness.js.\n//////////\n") 131 132 def _clean_webkit_test_files(self): 133 _log.debug('Cleaning WPT resources files') 134 for f in self._resources_files_to_copy: 135 wpt_filename = self._filesystem.join(self._doc_root, "resources", f) 136 if self._filesystem.isfile(wpt_filename): 137 self._filesystem.remove(wpt_filename) 138 _log.debug('Cleaning WPT web platform server config.json') 139 config_wpt_filename = self._filesystem.join(self._doc_root, "config.json") 140 if self._filesystem.isfile(config_wpt_filename): 141 self._filesystem.remove(config_wpt_filename) 142 143 def _prepare_config(self): 144 self._filesystem.maybe_make_directory(self._output_dir) 145 self._output_log_path = self._filesystem.join(self._output_dir, self._log_file_name) 146 self._wsout = self._filesystem.open_text_file_for_writing(self._output_log_path) 147 self._copy_webkit_test_files() 123 self._filesystem.write_text_file(self._config_filename, config_json) 148 124 149 125 def _spawn_process(self): … … 166 142 return self._process.pid 167 143 168 def _stop_running_subservers(self): 169 if self._filesystem.exists(self._servers_file): 170 try: 171 json_data = self._filesystem.read_text_file(self._servers_file) 172 started_servers = json.loads(json_data) 173 for server in started_servers: 174 if self._executive.check_running_pid(server['pid']): 175 _log.warning('Killing server process (protocol: %s , port: %d, pid: %d).' % (server['protocol'], server['port'], server['pid'])) 176 self._executive.kill_process(server['pid']) 177 finally: 178 self._filesystem.remove(self._servers_file) 144 def _stop_running_server(self): 145 _log.debug('Cleaning WPT web platform server config.json') 146 if self._filesystem.isfile(self._config_filename): 147 self._filesystem.remove(self._config_filename) 179 148 180 def stop(self):181 super(WebPlatformTestServer, self).stop()182 # In case of orphaned pid, kill the running subservers if any still alive.183 self._stop_running_subservers()184 185 def _stop_running_server(self):186 _log.debug('Stopping %s server' % (self._name))187 self._clean_webkit_test_files()188 189 if self._process:190 self._process.communicate(input='\n')191 149 if self._wsout: 192 150 self._wsout.close() 193 151 self._wsout = None 194 152 195 if self._pid and self._executive.check_running_pid(self._pid): 196 _log.warning('Cannot stop %s server normally.' % (self._name)) 197 _log.warning('Killing server launcher process (pid: %d).' % (self._pid)) 198 self._executive.kill_process(self._pid) 153 if self._pid: 154 # kill_process will not kill the subprocesses, interrupt does the job. 155 self._executive.interrupt(self._pid) 199 156 200 157 self._remove_pid_file() 201 self._stop_running_subservers()
Note:
See TracChangeset
for help on using the changeset viewer.