OLD | NEW |
---|---|
1 # Copyright (C) 2011 Google Inc. All rights reserved. | 1 # Copyright (C) 2011 Google Inc. All rights reserved. |
2 # | 2 # |
3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
5 # met: | 5 # met: |
6 # | 6 # |
7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
(...skipping 17 matching lines...) Expand all Loading... | |
28 | 28 |
29 import base64 | 29 import base64 |
30 import logging | 30 import logging |
31 import re | 31 import re |
32 import shlex | 32 import shlex |
33 import sys | 33 import sys |
34 import time | 34 import time |
35 | 35 |
36 from webkitpy.common.system import path | 36 from webkitpy.common.system import path |
37 from webkitpy.common.system.profiler import ProfilerFactory | 37 from webkitpy.common.system.profiler import ProfilerFactory |
38 from webkitpy.layout_tests.port.server_process import quote_data | |
38 | 39 |
39 | 40 |
40 _log = logging.getLogger(__name__) | 41 _log = logging.getLogger(__name__) |
41 | 42 |
42 | 43 |
43 DRIVER_START_TIMEOUT_SECS = 30 | 44 DRIVER_START_TIMEOUT_SECS = 30 |
44 | 45 |
45 | 46 |
46 class DriverInput(object): | 47 class DriverInput(object): |
47 | 48 |
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
330 _log.error("content_shell took too long to startup.") | 331 _log.error("content_shell took too long to startup.") |
331 | 332 |
332 def _wait_for_server_process_output(self, server_process, deadline, text): | 333 def _wait_for_server_process_output(self, server_process, deadline, text): |
333 output = '' | 334 output = '' |
334 line = server_process.read_stdout_line(deadline) | 335 line = server_process.read_stdout_line(deadline) |
335 while not server_process.timed_out and not server_process.has_crashed() and not text in line.rstrip(): | 336 while not server_process.timed_out and not server_process.has_crashed() and not text in line.rstrip(): |
336 output += line | 337 output += line |
337 line = server_process.read_stdout_line(deadline) | 338 line = server_process.read_stdout_line(deadline) |
338 | 339 |
339 if server_process.timed_out or server_process.has_crashed(): | 340 if server_process.timed_out or server_process.has_crashed(): |
341 # Print stdout and stderr if the process failed to start. | |
342 # Adapted from ServerProcess._log_data(). | |
343 for line in quote_data(output): | |
344 _log.error('%s: %s', 'OUT', line) | |
345 for line in quote_data(server_process.pop_all_buffered_stderr()): | |
346 _log.error('%s: %s', 'ERR', line) | |
340 _log.error('Failed to start the %s process: \n%s', server_process.na me(), output) | 347 _log.error('Failed to start the %s process: \n%s', server_process.na me(), output) |
Dirk Pranke
2016/11/29 02:20:48
Doesn't this result in double-logging things, sinc
Jack Bates
2016/12/01 17:47:38
Oops! Yes. How did I miss that? Thank you. I uploa
| |
341 return False | 348 return False |
342 | 349 |
343 return True | 350 return True |
344 | 351 |
345 def _run_post_start_tasks(self): | 352 def _run_post_start_tasks(self): |
346 # Remote drivers may override this to delay post-start tasks until the s erver has ack'd. | 353 # Remote drivers may override this to delay post-start tasks until the s erver has ack'd. |
347 if self._profiler: | 354 if self._profiler: |
348 self._profiler.attach_to_pid(self._pid_on_target()) | 355 self._profiler.attach_to_pid(self._pid_on_target()) |
349 | 356 |
350 def _pid_on_target(self): | 357 def _pid_on_target(self): |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
544 self.decoded_content = None | 551 self.decoded_content = None |
545 self.malloc = None | 552 self.malloc = None |
546 self.js_heap = None | 553 self.js_heap = None |
547 self.stdin_path = None | 554 self.stdin_path = None |
548 | 555 |
549 def decode_content(self): | 556 def decode_content(self): |
550 if self.encoding == 'base64' and self.content is not None: | 557 if self.encoding == 'base64' and self.content is not None: |
551 self.decoded_content = base64.b64decode(self.content) | 558 self.decoded_content = base64.b64decode(self.content) |
552 else: | 559 else: |
553 self.decoded_content = self.content | 560 self.decoded_content = self.content |
OLD | NEW |