Index: Tools/Scripts/webkitpy/layout_tests/port/browser_test_driver.py |
diff --git a/Tools/Scripts/webkitpy/layout_tests/port/browser_test_driver.py b/Tools/Scripts/webkitpy/layout_tests/port/browser_test_driver.py |
deleted file mode 100644 |
index 3c626199dcd88c64c7f3aa2d0b013d742b3f4a02..0000000000000000000000000000000000000000 |
--- a/Tools/Scripts/webkitpy/layout_tests/port/browser_test_driver.py |
+++ /dev/null |
@@ -1,97 +0,0 @@ |
-# Copyright (C) 2014 Google Inc. All rights reserved. |
-# |
-# Redistribution and use in source and binary forms, with or without |
-# modification, are permitted provided that the following conditions are |
-# met: |
-# |
-# * Redistributions of source code must retain the above copyright |
-# notice, this list of conditions and the following disclaimer. |
-# * Redistributions in binary form must reproduce the above |
-# copyright notice, this list of conditions and the following disclaimer |
-# in the documentation and/or other materials provided with the |
-# distribution. |
-# * Neither the Google name nor the names of its |
-# contributors may be used to endorse or promote products derived from |
-# this software without specific prior written permission. |
-# |
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- |
-from webkitpy.layout_tests.port import driver |
-import time |
-import shutil |
- |
- |
-class BrowserTestDriver(driver.Driver): |
- """Object for running print preview test(s) using browser_tests.""" |
- def __init__(self, port, worker_number, pixel_tests, no_timeout=False): |
- """Invokes the constructor of driver.Driver.""" |
- super(BrowserTestDriver, self).__init__(port, worker_number, pixel_tests, no_timeout) |
- self._stdin_directory = None |
- |
- def start(self, pixel_tests, per_test_args, deadline): |
- """Same as Driver.start() however, it has an extra step. It waits for |
- a path to a file to be used for stdin to be printed by the browser test. |
- If a path is found by the deadline test test will open the file and |
- assign it to the stdin of the process that is owned by this driver's |
- server process. |
- """ |
- # FIXME(ivandavid): Need to handle case where the layout test doesn't |
- # get a file name. |
- new_cmd_line = self.cmd_line(pixel_tests, per_test_args) |
- if not self._server_process or new_cmd_line != self._current_cmd_line: |
- self._start(pixel_tests, per_test_args) |
- self._run_post_start_tasks() |
- self._open_stdin_path(deadline) |
- |
- # Gets the path of the directory that the file for stdin |
- # communication is in. Since the browser test cannot clean it |
- # up, the layout test framework will. Everything the browser test |
- # uses is stored in the same directory as the stdin file, so |
- # deleting that directory recursively will remove all the other |
- # temp data, like the printed pdf. |
- # Assumes that the correct file is sent, however if the path |
- # only contains one component, like '/foo' the the directory |
- # won't be deleted as it might be wrong. |
- def _open_stdin_path(self, deadline, test=False): |
- path, found = self._read_stdin_path(deadline) |
- if found: |
- if test == False: |
- self._server_process._proc.stdin = open(path, 'wb', 0) |
- path_split = path.split(self._port.TEST_PATH_SEPARATOR) |
- if len(path_split) > 2: |
- del path_split[-1] |
- self._stdin_directory = self._port.TEST_PATH_SEPARATOR.join(path_split) |
- else: |
- self._stdin_directory = path |
- |
- def _read_stdin_path(self, deadline): |
- # return (stdin_path, bool) |
- block = self._read_block(deadline) |
- if block.stdin_path: |
- return (block.stdin_path, True) |
- return (None, False) |
- |
- def cmd_line(self, pixel_tests, per_test_args): |
- """Command line arguments to run the browser test.""" |
- cmd = self._command_wrapper(self._port.get_option('wrapper')) |
- cmd.append(self._port._path_to_driver()) |
- cmd.append('--gtest_filter=PrintPreviewPdfGeneratedBrowserTest.MANUAL_LayoutTestDriver') |
- cmd.append('--run-manual') |
- cmd.append('--single_process') |
- cmd.extend(per_test_args) |
- cmd.extend(self._port.get_option('additional_drt_flag', [])) |
- return cmd |
- |
- def __del__(self): |
- if self._stdin_directory: |
- shutil.rmtree(self._stdin_directory, ignore_errors=True) |