Changeset 85347 in webkit


Ignore:
Timestamp:
Apr 29, 2011 12:17:36 PM (13 years ago)
Author:
ojan@chromium.org
Message:

2011-04-28 Ojan Vafai <ojan@chromium.org>

Reviewed by Tony Chang.

fix pretty_patch_available and wdiff_available
https://bugs.webkit.org/show_bug.cgi?id=59761

These methods rely on the check_* method being called first.
This would only happen when we actually tried to compute a diff,
but computing the diff happens on a different process.

Also fix setting _wdiff_avialable to True by default.

  • Scripts/webkitpy/layout_tests/port/base.py:
  • Scripts/webkitpy/layout_tests/port/chromium_linux.py:
  • Scripts/webkitpy/layout_tests/port/chromium_linux_unittest.py:
Location:
trunk/Tools
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r85344 r85347  
     12011-04-28  Ojan Vafai  <ojan@chromium.org>
     2
     3        Reviewed by Tony Chang.
     4
     5        fix pretty_patch_available and wdiff_available
     6        https://bugs.webkit.org/show_bug.cgi?id=59761
     7
     8        These methods rely on the check_* method being called first.
     9        This would only happen when we actually tried to compute a diff,
     10        but computing the diff happens on a different process.
     11       
     12        Also fix setting _wdiff_avialable to True by default.
     13
     14        * Scripts/webkitpy/layout_tests/port/base.py:
     15        * Scripts/webkitpy/layout_tests/port/chromium_linux.py:
     16        * Scripts/webkitpy/layout_tests/port/chromium_linux_unittest.py:
     17
    1182011-04-29  Ojan Vafai  <ojan@chromium.org>
    219
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/base.py

    r84544 r85347  
    128128        #    2008-August/505753.html
    129129        # http://bugs.python.org/issue3210
    130         self._wdiff_available = True
     130        self._wdiff_available = None
    131131
    132132        # FIXME: prettypatch.py knows this path, why is it copied here?
     
    142142
    143143    def wdiff_available(self):
    144         return bool(self._wdiff_available)
     144        if self._wdiff_available is None:
     145            self._wdiff_available = self.check_wdiff(logging=False)
     146        return self._wdiff_available
    145147
    146148    def pretty_patch_available(self):
    147         return bool(self._pretty_patch_available)
     149        if self._pretty_patch_available is None:
     150            self._pretty_patch_available = self.check_pretty_patch(logging=False)
     151        return self._pretty_patch_available
    148152
    149153    def default_child_processes(self):
     
    186190    def check_pretty_patch(self, logging=True):
    187191        """Checks whether we can use the PrettyPatch ruby script."""
    188         # check if Ruby is installed
    189192        try:
    190193            result = self._executive.run_command(['ruby', '--version'])
     
    200203                _log.error("Unable to find %s; can't generate pretty patches." % self._pretty_patch_path)
    201204                _log.error('')
     205            return False
     206
     207        return True
     208
     209    def check_wdiff(self, logging=True):
     210        if not self._path_to_wdiff():
     211            # Don't need to log here since this is the port choosing not to use wdiff.
     212            return False
     213
     214        try:
     215            result = self._executive.run_command([self._path_to_wdiff(), '--help'])
     216        except OSError:
     217            if logging:
     218                _log.error("wdiff is not installed.")
    202219            return False
    203220
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_linux.py

    r83346 r85347  
    108108            else:
    109109                result = self._check_lighttpd_install() and result
    110         result = self._check_wdiff_install() and result
     110        result = self.check_wdiff() and result
    111111
    112112        if not result:
     
    160160        return result
    161161
    162     def _check_wdiff_install(self):
     162    def check_wdiff(self, logging=True):
    163163        result = self._check_file_exists(self._path_to_wdiff(), 'wdiff')
    164         if not result:
     164        if not result and logging:
    165165            _log.error('    Please install using: "sudo apt-get install '
    166166                       'wdiff"')
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py

    r82752 r85347  
    9393    def check_build(self, needs_http):
    9494        result = chromium.ChromiumPort.check_build(self, needs_http)
    95         result = self._check_wdiff_install() and result
     95        result = self.check_wdiff() and result
    9696        if not result:
    9797            _log.error('For complete Mac build requirements, please see:')
     
    9999            _log.error('    http://code.google.com/p/chromium/wiki/'
    100100                       'MacBuildInstructions')
     101
    101102        return result
    102103
     
    126127            'Source', 'WebKit', 'chromium', 'xcodebuild', *comps)
    127128
    128     def _check_wdiff_install(self):
     129    def check_wdiff(self, logging=True):
    129130        try:
    130131            # We're ignoring the return and always returning True
    131132            self._executive.run_command([self._path_to_wdiff()], error_handler=Executive.ignore_error)
    132133        except OSError:
    133             _log.warning('wdiff not found. Install using MacPorts or some '
    134                          'other means')
     134            if logging:
     135                _log.warning('wdiff not found. Install using MacPorts or some '
     136                             'other means')
    135137        return True
    136138
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py

    r82752 r85347  
    4141        return chromium_mac.ChromiumMacPort
    4242
    43     def test_check_wdiff_install(self):
     43    def test_check_wdiff(self):
    4444        port = chromium_mac.ChromiumMacPort()
    45 
    46         # Currently is always true, just logs if missing.
    47         self.assertTrue(port._check_wdiff_install())
     45        self.assertTrue(port.check_wdiff())
    4846
    4947    def assert_name(self, port_name, os_version_string, expected):
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py

    r84128 r85347  
    128128        pass
    129129
     130    def test_check_build(self):
     131        # Override this test since ChromiumPort doesn't implement _path_to_driver().
     132        pass
     133
     134    def test_check_wdiff(self):
     135        # Override this test since ChromiumPort doesn't implement _path_to_driver().
     136        pass
     137
    130138    class TestMacPort(chromium_mac.ChromiumMacPort):
    131139        def __init__(self, options):
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py

    r84544 r85347  
    6767        self.make_port().release_http_lock()
    6868
    69     def test_check_build(self):
    70         port = self.make_port()
    71         self.assertTrue(port.check_build(True))
    72 
    7369    def test_check_sys_deps(self):
    7470        port = self.make_port()
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py

    r84207 r85347  
    139139        self.assertTrue(port.diff_image('foo', '', None))
    140140
     141    def test_check_build(self):
     142        port = self.make_port()
     143        if not port:
     144            return
     145        port.check_build(needs_http=True)
     146
     147    def test_check_wdiff(self):
     148        port = self.make_port()
     149        if not port:
     150            return
     151        port.check_wdiff()
    141152
    142153    def disabled_test_websocket_server(self):
Note: See TracChangeset for help on using the changeset viewer.