Changeset 244080 in webkit
- Timestamp:
- Apr 9, 2019, 9:14:43 AM (7 years ago)
- Location:
- trunk/Tools
- Files:
-
- 5 edited
-
ChangeLog (modified) (1 diff)
-
Scripts/webkitpy/port/image_diff.py (modified) (1 diff)
-
Scripts/webkitpy/port/server_process.py (modified) (5 diffs)
-
Scripts/webkitpy/port/server_process_mock.py (modified) (1 diff)
-
Scripts/webkitpy/port/server_process_unittest.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r244078 r244080 1 2019-04-09 Jonathan Bedard <jbedard@apple.com> 2 3 iOS 12 Simulator Release WK2 frequently timing out while running layout tests 4 https://bugs.webkit.org/show_bug.cgi?id=196694 5 <rdar://problem/48388734> 6 7 Rubber-stamped by Aakash Jain. 8 9 * Scripts/webkitpy/port/image_diff.py: 10 (ImageDiffer.diff_image): If the ImageDiff process has data, kill it before running again. 11 * Scripts/webkitpy/port/server_process.py: 12 (ServerProcess.has_available_stdout): Check if stdout has data in it. 13 (ServerProcess._wait_for_data_and_update_buffers_using_select): 14 (ServerProcess._wait_for_data_and_update_buffers_using_win32_apis): 15 * Scripts/webkitpy/port/server_process_mock.py: 16 (MockServerProcess.has_available_stdout): 17 * Scripts/webkitpy/port/server_process_unittest.py: 18 (TestServerProcess.serial_test_basic): 19 1 20 2019-04-09 Jer Noble <jer.noble@apple.com> 2 21 -
trunk/Tools/Scripts/webkitpy/port/image_diff.py
r216288 r244080 48 48 49 49 def diff_image(self, expected_contents, actual_contents, tolerance): 50 if tolerance != self._tolerance :50 if tolerance != self._tolerance or (self._process and self._process.has_available_stdout()): 51 51 self.stop() 52 52 try: -
trunk/Tools/Scripts/webkitpy/port/server_process.py
r243559 r244080 204 204 return self._read(deadline, self._pop_stdout_line_if_ready) 205 205 206 def has_available_stdout(self): 207 if not self.has_crashed() and self._use_win32_apis: 208 self._wait_for_data_and_update_buffers_using_win32_apis(0) 209 elif not self.has_crashed(): 210 self._wait_for_data_and_update_buffers_using_select(0) 211 212 return bool(self._output) 213 206 214 def read_stderr_line(self, deadline): 207 215 return self._read(deadline, self._pop_stderr_line_if_ready) … … 257 265 258 266 def _wait_for_data_and_update_buffers_using_select(self, deadline, stopping=False): 259 if self._proc.stdout.closed or self._proc.stderr.closed:267 if not self._proc or self._proc.stdout.closed or self._proc.stderr.closed: 260 268 # If the process crashed and is using FIFOs, like Chromium Android, the 261 269 # stdout and stderr pipes will be closed. … … 301 309 302 310 def _wait_for_data_and_update_buffers_using_win32_apis(self, deadline): 311 if not self._proc: 312 return 313 303 314 # See http://code.activestate.com/recipes/440554-module-to-allow-asynchronous-subprocess-use-on-win/ 304 315 # and http://docs.activestate.com/activepython/2.6/pywin32/modules.html … … 306 317 out_fh = msvcrt.get_osfhandle(self._proc.stdout.fileno()) 307 318 err_fh = msvcrt.get_osfhandle(self._proc.stderr.fileno()) 308 while time.time() < deadline: 319 checking = True 320 while checking: 309 321 output = self._non_blocking_read_win32(out_fh) 310 322 error = self._non_blocking_read_win32(err_fh) … … 318 330 return 319 331 time.sleep(0.01) 332 checking = time.time() < deadline 320 333 321 334 def _non_blocking_read_win32(self, handle): -
trunk/Tools/Scripts/webkitpy/port/server_process_mock.py
r218055 r244080 55 55 return self.lines.pop(0) + "\n" 56 56 57 def has_available_stdout(self): 58 if self.has_crashed(): 59 return False 60 return bool(self.lines) 61 57 62 def read_stdout(self, deadline, size): 58 63 if self.has_crashed(): -
trunk/Tools/Scripts/webkitpy/port/server_process_unittest.py
r243559 r244080 102 102 def serial_test_basic(self): 103 103 # Give -u switch to force stdout and stderr to be unbuffered for Windows 104 cmd = [sys.executable, '-uc', 'import sys; print "stdout"; print >>sys.stderr, "stderr"; sys.stdin.readline();']104 cmd = [sys.executable, '-uc', 'import sys; print "stdout"; print "again"; print >>sys.stderr, "stderr"; sys.stdin.readline();'] 105 105 host = SystemHost() 106 106 factory = PortFactory(host) … … 121 121 self.assertEqual(line.strip(), "stdout") 122 122 123 self.assertTrue(proc.has_available_stdout()) 124 123 125 line = proc.read_stderr_line(now + 1.0) 124 126 self.assertEqual(line.strip(), "stderr") 127 128 line = proc.read_stdout_line(now + 1.0) 129 self.assertEqual(line.strip(), "again") 130 self.assertFalse(proc.has_available_stdout()) 125 131 126 132 proc.write('End\n')
Note:
See TracChangeset
for help on using the changeset viewer.