Changeset 112594 in webkit


Ignore:
Timestamp:
Mar 29, 2012 3:53:28 PM (12 years ago)
Author:
dpranke@chromium.org
Message:

new-run-webkit-tests: crashes when it fails to decode a stack trace
https://bugs.webkit.org/show_bug.cgi?id=82673

Unreviewed, build fix.

We are assuming the stdout/stderr output from the driver is utf-8
encoded when we get stack traces; this may not be a valid
assumption generally, but if we do get strings that aren't valid
utf-8, we would crash. Now we will ignore any decoding errors.

  • Scripts/webkitpy/layout_tests/port/base.py:

(Port._get_crash_log):

  • Scripts/webkitpy/layout_tests/port/port_testcase.py:

(PortTestCase.test_get_crash_log):

Location:
trunk/Tools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r112580 r112594  
     12012-03-29  Dirk Pranke  <dpranke@chromium.org>
     2
     3        new-run-webkit-tests: crashes when it fails to decode a stack trace
     4        https://bugs.webkit.org/show_bug.cgi?id=82673
     5
     6        Unreviewed, build fix.
     7
     8        We are assuming the stdout/stderr output from the driver is utf-8
     9        encoded when we get stack traces; this may not be a valid
     10        assumption generally, but if we do get strings that aren't valid
     11        utf-8, we would crash. Now we will ignore any decoding errors.
     12
     13        * Scripts/webkitpy/layout_tests/port/base.py:
     14        (Port._get_crash_log):
     15        * Scripts/webkitpy/layout_tests/port/port_testcase.py:
     16        (PortTestCase.test_get_crash_log):
     17
    1182012-03-29  Simon Fraser  <simon.fraser@apple.com>
    219
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/base.py

    r112189 r112594  
    10551055        name_str = name or '<unknown process name>'
    10561056        pid_str = str(pid or '<unknown>')
    1057         stdout_lines = (stdout or '<empty>').decode('utf8').splitlines()
    1058         stderr_lines = (stderr or '<empty>').decode('utf8').splitlines()
     1057        stdout_lines = (stdout or '<empty>').decode('utf8', 'replace').splitlines()
     1058        stderr_lines = (stderr or '<empty>').decode('utf8', 'replace').splitlines()
    10591059        return 'crash log for %s (pid %s):\n%s\n%s\n' % (name_str, pid_str,
    10601060            '\n'.join(('STDOUT: ' + l) for l in stdout_lines),
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py

    r112171 r112594  
    315315            'STDERR: <empty>\n'))
    316316
     317        self.assertEquals(port._get_crash_log('foo', 1234, 'out bar\nout baz', 'err bar\nerr baz\n'),
     318            ('crash log for foo (pid 1234):\n'
     319             'STDOUT: out bar\n'
     320             'STDOUT: out baz\n'
     321             'STDERR: err bar\n'
     322             'STDERR: err baz\n'))
     323
     324        self.assertEquals(port._get_crash_log('foo', 1234, 'foo\xa6bar', 'foo\xa6bar'),
     325            (u'crash log for foo (pid 1234):\n'
     326             u'STDOUT: foo\ufffdbar\n'
     327             u'STDERR: foo\ufffdbar\n'))
     328
    317329
    318330# FIXME: This class and main() should be merged into test-webkitpy.
Note: See TracChangeset for help on using the changeset viewer.