Title: [111289] trunk/Tools
Revision
111289
Author
[email protected]
Date
2012-03-19 18:25:54 -0700 (Mon, 19 Mar 2012)

Log Message

webkitpy: clean up some port._filesystem references to not reference private members
https://bugs.webkit.org/show_bug.cgi?id=81595

Reviewed by Eric Seidel.

There should be no functional changes in this patch, just some
refactoring. Also, fixes a minor nit in write_image_diff_files(()

* Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
(SingleTestRunner.__init__):
(SingleTestRunner._run_compare_test):
(SingleTestRunner._run_rebaseline):
(SingleTestRunner._save_baseline_data):
(SingleTestRunner._handle_error):
(SingleTestRunner._run_reftest):
* Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:
(write_test_result):
(TestResultWriter.__init__):
(TestResultWriter._make_output_directory):
(TestResultWriter.output_filename):
(TestResultWriter._output_testname):
(TestResultWriter.write_output_files):
(TestResultWriter.write_stderr):
(TestResultWriter.write_crash_report):
(TestResultWriter.create_text_diff_and_write_result):
(TestResultWriter.write_image_diff_files):
(copy_file):
* Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py:
(TestResultWriterTest.test_reftest_diff_image):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (111288 => 111289)


--- trunk/Tools/ChangeLog	2012-03-20 01:22:45 UTC (rev 111288)
+++ trunk/Tools/ChangeLog	2012-03-20 01:25:54 UTC (rev 111289)
@@ -1,5 +1,37 @@
 2012-03-19  Dirk Pranke  <[email protected]>
 
+        webkitpy: clean up some port._filesystem references to not reference private members
+        https://bugs.webkit.org/show_bug.cgi?id=81595
+
+        Reviewed by Eric Seidel.
+
+        There should be no functional changes in this patch, just some
+        refactoring. Also, fixes a minor nit in write_image_diff_files(()
+
+        * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
+        (SingleTestRunner.__init__):
+        (SingleTestRunner._run_compare_test):
+        (SingleTestRunner._run_rebaseline):
+        (SingleTestRunner._save_baseline_data):
+        (SingleTestRunner._handle_error):
+        (SingleTestRunner._run_reftest):
+        * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:
+        (write_test_result):
+        (TestResultWriter.__init__):
+        (TestResultWriter._make_output_directory):
+        (TestResultWriter.output_filename):
+        (TestResultWriter._output_testname):
+        (TestResultWriter.write_output_files):
+        (TestResultWriter.write_stderr):
+        (TestResultWriter.write_crash_report):
+        (TestResultWriter.create_text_diff_and_write_result):
+        (TestResultWriter.write_image_diff_files):
+        (copy_file):
+        * Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py:
+        (TestResultWriterTest.test_reftest_diff_image):
+
+2012-03-19  Dirk Pranke  <[email protected]>
+
         webkitpy: fix nit - incorrect reference to DRT in test_expectations.py
         https://bugs.webkit.org/show_bug.cgi?id=81598
 

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py (111288 => 111289)


--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py	2012-03-20 01:22:45 UTC (rev 111288)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py	2012-03-20 01:25:54 UTC (rev 111289)
@@ -51,6 +51,7 @@
     def __init__(self, options, port, driver, test_input, worker_name):
         self._options = options
         self._port = port
+        self._filesystem = port.host.filesystem
         self._driver = driver
         self._timeout = test_input.timeout
         self._worker_name = worker_name
@@ -67,7 +68,7 @@
             # in either layout tests or reftests, but not in both.
             for suffix in ('.txt', '.png', '.wav'):
                 expected_filename = self._port.expected_filename(self._test_name, suffix)
-                if port.host.filesystem.exists(expected_filename):
+                if self._filesystem.exists(expected_filename):
                     _log.error('%s is both a reftest and has an expected output file %s.',
                         self._test_name, expected_filename)
 
@@ -115,13 +116,13 @@
         test_result = self._compare_output(driver_output, expected_driver_output)
         if self._options.new_test_results:
             self._add_missing_baselines(test_result, driver_output)
-        test_result_writer.write_test_result(self._port, self._test_name, driver_output, expected_driver_output, test_result.failures)
+        test_result_writer.write_test_result(self._filesystem, self._port, self._test_name, driver_output, expected_driver_output, test_result.failures)
         return test_result
 
     def _run_rebaseline(self):
         driver_output = self._driver.run_test(self._driver_input())
         failures = self._handle_error(driver_output)
-        test_result_writer.write_test_result(self._port, self._test_name, driver_output, None, failures)
+        test_result_writer.write_test_result(self._filesystem, self._port, self._test_name, driver_output, None, failures)
         # FIXME: It the test crashed or timed out, it might be bettter to avoid
         # to write new baselines.
         self._overwrite_baselines(driver_output)
@@ -162,7 +163,7 @@
         if data is None:
             return
         port = self._port
-        fs = port._filesystem
+        fs = self._filesystem
         if generate_new_baseline:
             relative_dir = fs.dirname(self._test_name)
             baseline_path = port.baseline_path()
@@ -187,7 +188,7 @@
               which html file is used for producing the driver_output.
         """
         failures = []
-        fs = self._port._filesystem
+        fs = self._filesystem
         if driver_output.timeout:
             failures.append(test_failures.FailureTimeout(bool(reference_filename)))
 
@@ -295,7 +296,7 @@
             total_test_time += test_result.test_run_time
 
         assert(reference_output)
-        test_result_writer.write_test_result(self._port, self._test_name, test_output, reference_output, test_result.failures)
+        test_result_writer.write_test_result(self._filesystem, self._port, self._test_name, test_output, reference_output, test_result.failures)
         return TestResult(self._test_name, test_result.failures, total_test_time + test_result.test_run_time, test_result.has_stderr)
 
     def _compare_output_with_reference(self, driver_output1, driver_output2, reference_filename, mismatch):

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer.py (111288 => 111289)


--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer.py	2012-03-20 01:22:45 UTC (rev 111288)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer.py	2012-03-20 01:25:54 UTC (rev 111289)
@@ -36,11 +36,11 @@
 _log = logging.getLogger(__name__)
 
 
-def write_test_result(port, test_name, driver_output,
+def write_test_result(filesystem, port, test_name, driver_output,
                       expected_driver_output, failures):
     """Write the test result to the result output directory."""
     root_output_dir = port.results_directory()
-    writer = TestResultWriter(port, root_output_dir, test_name)
+    writer = TestResultWriter(filesystem, port, root_output_dir, test_name)
     if driver_output.error:
         writer.write_stderr(driver_output.error)
 
@@ -96,14 +96,15 @@
     FILENAME_SUFFIX_IMAGE_DIFF = "-diff.png"
     FILENAME_SUFFIX_IMAGE_DIFFS_HTML = "-diffs.html"
 
-    def __init__(self, port, root_output_dir, test_name):
+    def __init__(self, filesystem, port, root_output_dir, test_name):
+        self._filesystem = filesystem
         self._port = port
         self._root_output_dir = root_output_dir
         self._test_name = test_name
 
     def _make_output_directory(self):
         """Creates the output directory (if needed) for a given test filename."""
-        fs = self._port._filesystem
+        fs = self._filesystem
         output_filename = fs.join(self._root_output_dir, self._test_name)
         fs.maybe_make_directory(fs.dirname(output_filename))
 
@@ -119,12 +120,12 @@
         Return:
           The absolute path to the output filename
         """
-        fs = self._port._filesystem
+        fs = self._filesystem
         output_filename = fs.join(self._root_output_dir, self._test_name)
         return fs.splitext(output_filename)[0] + modifier
 
     def _output_testname(self, modifier):
-        fs = self._port._filesystem
+        fs = self._filesystem
         return fs.splitext(fs.basename(self._test_name))[0] + modifier
 
     def write_output_files(self, file_type, output, expected):
@@ -144,23 +145,22 @@
         actual_filename = self.output_filename(self.FILENAME_SUFFIX_ACTUAL + file_type)
         expected_filename = self.output_filename(self.FILENAME_SUFFIX_EXPECTED + file_type)
 
-        fs = self._port._filesystem
+        fs = self._filesystem
         if output is not None:
             fs.write_binary_file(actual_filename, output)
         if expected is not None:
             fs.write_binary_file(expected_filename, expected)
 
     def write_stderr(self, error):
-        fs = self._port._filesystem
+        fs = self._filesystem
         filename = self.output_filename(self.FILENAME_SUFFIX_STDERR + ".txt")
         fs.maybe_make_directory(fs.dirname(filename))
         fs.write_binary_file(filename, error)
 
     def write_crash_report(self, crashed_process_name, error):
-        fs = self._port._filesystem
+        fs = self._filesystem
         filename = self.output_filename(self.FILENAME_SUFFIX_CRASH_LOG + ".txt")
         fs.maybe_make_directory(fs.dirname(filename))
-        # FIXME: We shouldn't be grabbing private members of port.
         crash_logs = CrashLogs(fs)
         log = crash_logs.find_newest_log(crashed_process_name)
         # CrashLogs doesn't support every platform, so we fall back to
@@ -180,7 +180,7 @@
         file_type = '.txt'
         actual_filename = self.output_filename(self.FILENAME_SUFFIX_ACTUAL + file_type)
         expected_filename = self.output_filename(self.FILENAME_SUFFIX_EXPECTED + file_type)
-        fs = self._port._filesystem
+        fs = self._filesystem
         # We treat diff output as binary. Diff output may contain multiple files
         # in conflicting encodings.
         diff = self._port.diff_text(expected_text, actual_text, expected_filename, actual_filename)
@@ -205,7 +205,7 @@
 
     def write_image_diff_files(self, image_diff):
         diff_filename = self.output_filename(self.FILENAME_SUFFIX_IMAGE_DIFF)
-        fs = self._port._filesystem
+        fs = self._filesystem
         fs.write_binary_file(diff_filename, image_diff)
 
         diffs_html_filename = self.output_filename(self.FILENAME_SUFFIX_IMAGE_DIFFS_HTML)
@@ -262,11 +262,10 @@
             'diff_filename': self._output_testname(self.FILENAME_SUFFIX_IMAGE_DIFF),
             'prefix': self._output_testname(''),
         }
-        # FIXME: This seems like a text file, not a binary file.
-        self._port._filesystem.write_binary_file(diffs_html_filename, html)
+        self._filesystem.write_text_file(diffs_html_filename, html)
 
     def copy_file(self, src_filepath):
-        fs = self._port._filesystem
+        fs = self._filesystem
         assert fs.exists(src_filepath), 'src_filepath: %s' % src_filepath
         dst_filepath = fs.join(self._root_output_dir, self._port.relative_test_filename(src_filepath))
         self._make_output_directory()

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py (111288 => 111289)


--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py	2012-03-20 01:22:45 UTC (rev 111288)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py	2012-03-20 01:25:54 UTC (rev 111289)
@@ -51,7 +51,7 @@
         driver_output1 = DriverOutput('text1', 'image1', 'imagehash1', 'audio1')
         driver_output2 = DriverOutput('text2', 'image2', 'imagehash2', 'audio2')
         failures = [test_failures.FailureReftestMismatch(test_reference_file)]
-        test_result_writer.write_test_result(ImageDiffTestPort(host), test_name,
+        test_result_writer.write_test_result(host.filesystem, ImageDiffTestPort(host), test_name,
                                              driver_output1, driver_output2, failures)
         self.assertEqual([0], used_tolerance_values)
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to