Changeset 252616 in webkit


Ignore:
Timestamp:
Nov 18, 2019, 5:51:17 PM (6 years ago)
Author:
Jonathan Bedard
Message:

Python 3: Support run-api-tests
https://bugs.webkit.org/show_bug.cgi?id=204252

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/api_tests/manager.py:

(Manager._collect_tests): Use items over iteritems.
(Manager._print_tests_result_with_status): Use compatible iteritems.
(Manager.run): Use range over xrange, use compatible iteritems.

  • Scripts/webkitpy/api_tests/runner.py:

(Runner.run): Use compatible iteritems.
(Runner.result_map_by_status): Ditto.
(_Worker._run_single_test): Server process returns byte arrays, not strings.
(_Worker.handle): Use items over iteritems, use range over xrange.

  • Scripts/webkitpy/common/message_pool.py:

(_MessagePool.run): Use range over xrange.
(_MessagePool._start_workers): Ditto.

  • Scripts/webkitpy/common/multiprocessing_bootstrap.py: Remove version check.
  • Scripts/webkitpy/port/base.py:

(Port.check_api_test_build):Use items over iteritems.
(Port.commits_for_upload): Ditto.

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess._reset): Use byte array over string.
(ServerProcess._pop_stdout_line_if_ready): Check for bytes newline.
(ServerProcess._pop_stderr_line_if_ready): Ditto.

Location:
trunk/Tools
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r252609 r252616  
     12019-11-18  Jonathan Bedard  <jbedard@apple.com>
     2
     3        Python 3: Support run-api-tests
     4        https://bugs.webkit.org/show_bug.cgi?id=204252
     5
     6        Rubber-stamped by Aakash Jain.
     7
     8        * Scripts/webkitpy/api_tests/manager.py:
     9        (Manager._collect_tests): Use items over iteritems.
     10        (Manager._print_tests_result_with_status): Use compatible iteritems.
     11        (Manager.run): Use range over xrange, use compatible iteritems.
     12        * Scripts/webkitpy/api_tests/runner.py:
     13        (Runner.run): Use compatible iteritems.
     14        (Runner.result_map_by_status): Ditto.
     15        (_Worker._run_single_test): Server process returns byte arrays, not strings.
     16        (_Worker.handle): Use items over iteritems, use range over xrange.
     17        * Scripts/webkitpy/common/message_pool.py:
     18        (_MessagePool.run): Use range over xrange.
     19        (_MessagePool._start_workers): Ditto.
     20        * Scripts/webkitpy/common/multiprocessing_bootstrap.py: Remove version check.
     21        * Scripts/webkitpy/port/base.py:
     22        (Port.check_api_test_build):Use items over iteritems.
     23        (Port.commits_for_upload): Ditto.
     24        * Scripts/webkitpy/port/server_process.py:
     25        (ServerProcess._reset): Use byte array over string.
     26        (ServerProcess._pop_stdout_line_if_ready): Check for bytes newline.
     27        (ServerProcess._pop_stderr_line_if_ready): Ditto.
     28
    1292019-11-18  Andres Gonzalez  <andresg_22@apple.com>
    230
  • trunk/Tools/Scripts/webkitpy/api_tests/manager.py

    r244942 r252616  
    2626
    2727from webkitpy.api_tests.runner import Runner
     28from webkitpy.common.iteration_compatibility import iteritems
    2829from webkitpy.common.system.executive import ScriptError
    2930from webkitpy.results.upload import Upload
    30 
    3131from webkitpy.xcode.simulated_device import DeviceRequest, SimulatedDeviceManager
    3232
     
    9292        available_tests = []
    9393        specified_binaries = self._binaries_for_arguments(args)
    94         for canonicalized_binary, path in self._port.path_to_api_test_binaries().iteritems():
     94        for canonicalized_binary, path in self._port.path_to_api_test_binaries().items():
    9595            if canonicalized_binary not in specified_binaries:
    9696                continue
     
    125125            self._stream.writeln('')
    126126            need_newline = False
    127             for test, output in mapping.iteritems():
     127            for test, output in iteritems(mapping):
    128128                need_newline = Manager._print_test_result(self._stream, test, output)
    129129            if need_newline:
     
    183183            return Manager.SUCCESS
    184184
    185         test_names = [test for test in test_names for _ in xrange(self._options.repeat_each)]
     185        test_names = [test for test in test_names for _ in range(self._options.repeat_each)]
    186186        if self._options.repeat_each != 1:
    187187            _log.debug('Repeating each test {} times'.format(self._options.iterations))
     
    190190            _log.info('Running tests')
    191191            runner = Runner(self._port, self._stream)
    192             for i in xrange(self._options.iterations):
     192            for i in range(self._options.iterations):
    193193                _log.debug('\nIteration {}'.format(i + 1))
    194194                runner.run(test_names, int(self._options.child_processes) if self._options.child_processes else self._port.default_child_processes())
     
    236236            self._print_tests_result_with_status(runner.STATUS_TIMEOUT, runner)
    237237
    238             for test, result in runner.results.iteritems():
     238            for test, result in iteritems(runner.results):
    239239                status_to_string = {
    240240                    runner.STATUS_FAILED: 'Failed',
     
    272272                ),
    273273                results={test: Upload.create_test_result(actual=status_to_test_result[result[0]])
    274                          for test, result in runner.results.iteritems() if result[0] in status_to_test_result},
     274                         for test, result in iteritems(runner.results) if result[0] in status_to_test_result},
    275275            )
    276276            for url in self._options.report_urls:
  • trunk/Tools/Scripts/webkitpy/api_tests/runner.py

    r234962 r252616  
    2626
    2727from webkitpy.common import message_pool
     28from webkitpy.common.iteration_compatibility import iteritems
    2829from webkitpy.port.server_process import ServerProcess, _log as server_process_logger
    2930from webkitpy.xcode.simulated_device import SimulatedDeviceManager
     31from webkitpy.common.unicode_compatibility import decode_for
    3032
    3133
     
    9193            self._num_workers = min(num_workers, len(shards))
    9294            with message_pool.get(self, lambda caller: _Worker(caller, self.port, shards), self._num_workers) as pool:
    93                 pool.run(('test', shard) for shard, _ in shards.iteritems())
     95                pool.run(('test', shard) for shard, _ in iteritems(shards))
    9496        finally:
    9597            server_process_logger.setLevel(original_level)
     
    130132    def result_map_by_status(self, status=None):
    131133        map = {}
    132         for test_name, result in self.results.iteritems():
     134        for test_name, result in iteritems(self.results):
    133135            if result[0] == status:
    134136                map[test_name] = result[1]
     
    178180
    179181                if stderr_line:
     182                    stderr_line = decode_for(stderr_line, str)
    180183                    stderr_buffer += stderr_line
    181184                    self.post('log', output=stderr_line[:-1])
    182185                if stdout_line:
     186                    stdout_line = decode_for(stdout_line, str)
    183187                    if '**PASS**' in stdout_line:
    184188                        status = Runner.STATUS_PASSED
     
    199203
    200204        finally:
    201             remaining_stderr = server_process.pop_all_buffered_stderr()
    202             remaining_stdout = server_process.pop_all_buffered_stdout()
     205            remaining_stderr = decode_for(server_process.pop_all_buffered_stderr(), str)
     206            remaining_stdout = decode_for(server_process.pop_all_buffered_stdout(), str)
    203207            self.post('log', output=remaining_stderr + remaining_stdout)
    204208            output_buffer = stderr_buffer + stdout_buffer + remaining_stderr + remaining_stdout
     
    291295                binary_map[split_test_name[0]] = []
    292296            binary_map[split_test_name[0]].append('.'.join(split_test_name[1:]))
    293         for binary_name, test_list in binary_map.iteritems():
     297        for binary_name, test_list in binary_map.items():
    294298            self._run_shard_with_binary(binary_name, test_list)
  • trunk/Tools/Scripts/webkitpy/common/message_pool.py

    r252443 r252616  
    9999            self._messages_to_worker.put(_Message(self._name, message[0], message[1:], from_user=True, logs=()))
    100100
    101         for _ in xrange(self._num_workers):
     101        for _ in range(self._num_workers):
    102102            self._messages_to_worker.put(_Message(self._name, 'stop', message_args=(), from_user=False, logs=()))
    103103
     
    111111            host = self._host
    112112
    113         for worker_number in xrange(self._num_workers):
     113        for worker_number in range(self._num_workers):
    114114            worker = _Worker(host, self._messages_to_manager, self._messages_to_worker, self._worker_factory, worker_number, self._running_inline, self if self._running_inline else None, self._worker_log_level())
    115115            self._workers.append(worker)
  • trunk/Tools/Scripts/webkitpy/common/multiprocessing_bootstrap.py

    r169614 r252616  
    3939import sys
    4040
    41 from webkitpy.common import version_check   # 'unused import' pylint: disable=W0611
    42 
    4341
    4442def run(*parts):
  • trunk/Tools/Scripts/webkitpy/port/base.py

    r252443 r252616  
    252252            return False
    253253
    254         for binary, path in self.path_to_api_test_binaries().iteritems():
     254        for binary, path in self.path_to_api_test_binaries().items():
    255255            if binary not in canonicalized_binaries:
    256256                continue
     
    16061606
    16071607        commits = []
    1608         for repo_id, path in repos.iteritems():
     1608        for repo_id, path in repos.items():
    16091609            scm = SCMDetector(self._filesystem, self._executive).detect_scm_system(path)
    16101610            commits.append(Upload.create_commit(
  • trunk/Tools/Scripts/webkitpy/port/server_process.py

    r245544 r252616  
    111111
    112112        self._proc = None
    113         self._output = str()  # bytesarray() once we require Python 2.6
    114         self._error = str()  # bytesarray() once we require Python 2.6
     113        self._output = b''
     114        self._error = b''
    115115        self._crashed = False
    116116        self.timed_out = False
     
    189189
    190190    def _pop_stdout_line_if_ready(self):
    191         index_after_newline = self._output.find('\n') + 1
     191        index_after_newline = self._output.find(b'\n') + 1
    192192        if index_after_newline > 0:
    193193            return self._pop_output_bytes(index_after_newline)
     
    195195
    196196    def _pop_stderr_line_if_ready(self):
    197         index_after_newline = self._error.find('\n') + 1
     197        index_after_newline = self._error.find(b'\n') + 1
    198198        if index_after_newline > 0:
    199199            return self._pop_error_bytes(index_after_newline)
Note: See TracChangeset for help on using the changeset viewer.