Changeset 77998 in webkit


Ignore:
Timestamp:
Feb 8, 2011 5:17:02 PM (13 years ago)
Author:
dpranke@chromium.org
Message:

2011-02-08 Dirk Pranke <dpranke@chromium.org>

Reviewed by Tony Chang.

new-run-webkit-tests: move the logic that starts and stops the
servers from dump_render_tree_thread into single_test_runner
so that we can reuse it in the new multiprocessing worker class
as well.

https://bugs.webkit.org/show_bug.cgi?id=53840

  • Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:
  • Scripts/webkitpy/layout_tests/layout_package/single_test_runner.py:
Location:
trunk/Tools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r77994 r77998  
     12011-02-08  Dirk Pranke  <dpranke@chromium.org>
     2
     3        Reviewed by Tony Chang.
     4
     5        new-run-webkit-tests: move the logic that starts and stops the
     6        servers from dump_render_tree_thread into single_test_runner
     7        so that we can reuse it in the new multiprocessing worker class
     8        as well.
     9
     10        https://bugs.webkit.org/show_bug.cgi?id=53840
     11
     12        * Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:
     13        * Scripts/webkitpy/layout_tests/layout_package/single_test_runner.py:
     14 
    1152011-02-08  Dirk Pranke  <dpranke@chromium.org>
    216
  • trunk/Tools/Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py

    r77992 r77998  
    7575        self._current_group = None
    7676        self._filename_list = []
    77         self._single_test_runner = None
    7877        self._test_group_timing_stats = {}
    7978        self._test_results = []
     
    8180        self._start_time = 0
    8281        self._stop_time = 0
    83         self._have_http_lock = False
    8482        self._http_lock_wait_begin = 0
    8583        self._http_lock_wait_end = 0
    8684
    87     def cleanup(self):
    88         if self._single_test_runner:
    89             self._single_test_runner.cleanup()
    90         if self._have_http_lock:
    91             self._stop_servers_with_lock()
    92 
    93         # Current group of tests we're running.
    94         self._current_group = None
    95         # Number of tests in self._current_group.
    96         self._num_tests_in_current_group = None
    97         # Time at which we started running tests from self._current_group.
    98         self._current_group_start_time = None
    99 
    10085    def cancel(self):
    10186        """Set a flag telling this thread to quit."""
    102         self.cleanup()
    10387        self._canceled = True
    10488
     
    192176        If test_runner is not None, then we call test_runner.UpdateSummary()
    193177        with the results of each test."""
    194         self._single_test_runner = SingleTestRunner(self._options, self._port,
     178        single_test_runner = SingleTestRunner(self._options, self._port,
    195179            self._name, self._worker_number)
    196180
     
    208192                _log.debug('Testing cancelled')
    209193                tests_run_file.close()
    210                 self.cleanup()
     194                single_test_runner.cleanup()
    211195                return
    212196
     
    221205                        self._filename_list_queue.get_nowait()
    222206                except Queue.Empty:
    223                     self.cleanup()
    224207                    tests_run_file.close()
     208                    single_test_runner.cleanup()
    225209                    return
    226210
    227211                if self._current_group == "tests_to_http_lock":
    228                     self._start_servers_with_lock()
    229                 elif self._have_http_lock:
    230                     self._stop_servers_with_lock()
     212                    self._http_lock_wait_begin = time.time()
     213                    single_test_runner.start_servers_with_lock()
     214                    self._http_lock_wait_end = time.time()
     215                elif single_test_runner.has_http_lock:
     216                    single_test_runner.stop_servers_with_lock()
    231217
    232218                self._num_tests_in_current_group = len(self._filename_list)
     
    239225            self._num_tests += 1
    240226
    241             timeout = self._single_test_runner.timeout(test_input)
    242             result = self._single_test_runner.run_test(test_input, timeout)
     227            timeout = single_test_runner.timeout(test_input)
     228            result = single_test_runner.run_test(test_input, timeout)
    243229
    244230            tests_run_file.write(test_input.filename + "\n")
     
    247233                # Check and kill DumpRenderTree if we need to.
    248234                if any([f.should_kill_dump_render_tree() for f in result.failures]):
    249                     self._single_test_runner.kill_dump_render_tree()
     235                    single_test_runner.kill_dump_render_tree()
    250236                    # Reset the batch count since the shell just bounced.
    251237                    batch_count = 0
     
    261247            if batch_size > 0 and batch_count >= batch_size:
    262248                # Bounce the shell and reset count.
    263                 self._single_test_runner.kill_dump_render_tree()
     249                single_test_runner.kill_dump_render_tree()
    264250                batch_count = 0
    265251
    266252            if test_runner:
    267253                test_runner.update_summary(result_summary)
    268 
    269     def _start_servers_with_lock(self):
    270         """Acquire http lock and start the servers."""
    271         self._http_lock_wait_begin = time.time()
    272         _log.debug('Acquire http lock ...')
    273         self._port.acquire_http_lock()
    274         _log.debug('Starting HTTP server ...')
    275         self._port.start_http_server()
    276         _log.debug('Starting WebSocket server ...')
    277         self._port.start_websocket_server()
    278         self._http_lock_wait_end = time.time()
    279         self._have_http_lock = True
    280 
    281     def _stop_servers_with_lock(self):
    282         """Stop the servers and release http lock."""
    283         if self._have_http_lock:
    284             _log.debug('Stopping HTTP server ...')
    285             self._port.stop_http_server()
    286             _log.debug('Stopping WebSocket server ...')
    287             self._port.stop_websocket_server()
    288             _log.debug('Release http lock ...')
    289             self._port.release_http_lock()
    290             self._have_http_lock = False
  • trunk/Tools/Scripts/webkitpy/layout_tests/layout_package/single_test_runner.py

    r77992 r77998  
    6161        self._driver = None
    6262        self._test_types = []
     63        self.has_http_lock = False
    6364        for cls in self._get_test_type_classes():
    6465            self._test_types.append(cls(self._port,
     
    6768    def cleanup(self):
    6869        self.kill_dump_render_tree()
     70        if self.has_http_lock:
     71            self.stop_servers_with_lock()
    6972
    7073    def _get_test_type_classes(self):
     
    233236                          total_time_for_all_diffs, time_for_diffs)
    234237
     238    def start_servers_with_lock(self):
     239        _log.debug('Acquiring http lock ...')
     240        self._port.acquire_http_lock()
     241        _log.debug('Starting HTTP server ...')
     242        self._port.start_http_server()
     243        _log.debug('Starting WebSocket server ...')
     244        self._port.start_websocket_server()
     245        self.has_http_lock = True
     246
     247    def stop_servers_with_lock(self):
     248        """Stop the servers and release http lock."""
     249        if self.has_http_lock:
     250            _log.debug('Stopping HTTP server ...')
     251            self._port.stop_http_server()
     252            _log.debug('Stopping WebSocket server ...')
     253            self._port.stop_websocket_server()
     254            _log.debug('Releasing server lock ...')
     255            self._port.release_http_lock()
     256            self.has_http_lock = False
     257
    235258    def kill_dump_render_tree(self):
    236259        """Kill the DumpRenderTree process if it's running."""
Note: See TracChangeset for help on using the changeset viewer.