Title: [146559] trunk/Tools
Revision
146559
Author
[email protected]
Date
2013-03-21 20:48:06 -0700 (Thu, 21 Mar 2013)

Log Message

nrwt is no longer saving retry results in the retries/ subdirectory
https://bugs.webkit.org/show_bug.cgi?id=112995

Reviewed by Ojan Vafai.

I think this has been broken a long time, unfortunately. This
patch should fix that.

In order to do so, I had to pass the directory to use from
the Worker object through the SingleTestWriter to the
TestResultWriter. While I was plumbing that through, I rationalized
the order of the parameter arguments a bit ...

* Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
(Worker._run_single_test):
* Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
(run_single_test):
(SingleTestRunner.__init__):
(SingleTestRunner._run_compare_test):
(SingleTestRunner._run_rebaseline):
(SingleTestRunner._run_reftest):
* Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:
(write_test_result):
* Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py:
(TestResultWriterTest.test_reftest_diff_image):
* Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(RunTest.test_retrying_uses_retries_directory):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (146558 => 146559)


--- trunk/Tools/ChangeLog	2013-03-22 03:12:49 UTC (rev 146558)
+++ trunk/Tools/ChangeLog	2013-03-22 03:48:06 UTC (rev 146559)
@@ -1,3 +1,33 @@
+2013-03-21  Dirk Pranke  <[email protected]>
+
+        nrwt is no longer saving retry results in the retries/ subdirectory
+        https://bugs.webkit.org/show_bug.cgi?id=112995
+
+        Reviewed by Ojan Vafai.
+
+        I think this has been broken a long time, unfortunately. This
+        patch should fix that.
+
+        In order to do so, I had to pass the directory to use from
+        the Worker object through the SingleTestWriter to the
+        TestResultWriter. While I was plumbing that through, I rationalized
+        the order of the parameter arguments a bit ...
+
+        * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
+        (Worker._run_single_test):
+        * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
+        (run_single_test):
+        (SingleTestRunner.__init__):
+        (SingleTestRunner._run_compare_test):
+        (SingleTestRunner._run_rebaseline):
+        (SingleTestRunner._run_reftest):
+        * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:
+        (write_test_result):
+        * Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py:
+        (TestResultWriterTest.test_reftest_diff_image):
+        * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
+        (RunTest.test_retrying_uses_retries_directory):
+
 2013-03-21  Filip Pizlo  <[email protected]>
 
         JSC profiler should have an at-a-glance report of the success of DFG optimization

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py (146558 => 146559)


--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py	2013-03-22 03:12:49 UTC (rev 146558)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py	2013-03-22 03:48:06 UTC (rev 146559)
@@ -432,8 +432,8 @@
         return self._run_single_test(self._driver, test_input, stop_when_done)
 
     def _run_single_test(self, driver, test_input, stop_when_done):
-        return single_test_runner.run_single_test(self._port, self._options,
-            test_input, driver, self._name, stop_when_done)
+        return single_test_runner.run_single_test(self._port, self._options, self._results_directory,
+            self._name, driver, test_input, stop_when_done)
 
 
 class TestShard(object):

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


--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py	2013-03-22 03:12:49 UTC (rev 146558)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py	2013-03-22 03:48:06 UTC (rev 146559)
@@ -41,18 +41,19 @@
 _log = logging.getLogger(__name__)
 
 
-def run_single_test(port, options, test_input, driver, worker_name, stop_when_done):
-    runner = SingleTestRunner(options, port, driver, test_input, worker_name, stop_when_done)
+def run_single_test(port, options, results_directory, worker_name, driver, test_input, stop_when_done):
+    runner = SingleTestRunner(port, options, results_directory, worker_name, driver, test_input, stop_when_done)
     return runner.run()
 
 
 class SingleTestRunner(object):
     (ALONGSIDE_TEST, PLATFORM_DIR, VERSION_DIR, UPDATE) = ('alongside', 'platform', 'version', 'update')
 
-    def __init__(self, options, port, driver, test_input, worker_name, stop_when_done):
-        self._options = options
+    def __init__(self, port, options, results_directory, worker_name, driver, test_input, stop_when_done):
         self._port = port
         self._filesystem = port.host.filesystem
+        self._options = options
+        self._results_directory = results_directory
         self._driver = driver
         self._timeout = test_input.timeout
         self._worker_name = worker_name
@@ -114,13 +115,13 @@
         test_result = self._compare_output(expected_driver_output, driver_output)
         if self._options.new_test_results:
             self._add_missing_baselines(test_result, driver_output)
-        test_result_writer.write_test_result(self._filesystem, self._port, self._test_name, driver_output, expected_driver_output, test_result.failures)
+        test_result_writer.write_test_result(self._filesystem, self._port, self._results_directory, 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(), self._stop_when_done)
         failures = self._handle_error(driver_output)
-        test_result_writer.write_test_result(self._filesystem, self._port, self._test_name, driver_output, None, failures)
+        test_result_writer.write_test_result(self._filesystem, self._port, self._results_directory, self._test_name, driver_output, None, failures)
         # FIXME: It the test crashed or timed out, it might be better to avoid
         # to write new baselines.
         self._overwrite_baselines(driver_output)
@@ -305,7 +306,7 @@
             total_test_time += test_result.test_run_time
 
         assert(reference_output)
-        test_result_writer.write_test_result(self._filesystem, self._port, self._test_name, test_output, reference_output, test_result.failures)
+        test_result_writer.write_test_result(self._filesystem, self._port, self._results_directory, self._test_name, test_output, reference_output, test_result.failures)
         reftest_type = set([reference_file[0] for reference_file in self._reference_files])
         return TestResult(self._test_name, test_result.failures, total_test_time + test_result.test_run_time, test_result.has_stderr, reftest_type=reftest_type, pid=test_result.pid, references=reference_test_names)
 

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


--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer.py	2013-03-22 03:12:49 UTC (rev 146558)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer.py	2013-03-22 03:48:06 UTC (rev 146559)
@@ -35,10 +35,10 @@
 _log = logging.getLogger(__name__)
 
 
-def write_test_result(filesystem, port, test_name, driver_output,
+def write_test_result(filesystem, port, results_directory, test_name, driver_output,
                       expected_driver_output, failures):
     """Write the test result to the result output directory."""
-    root_output_dir = port.results_directory()
+    root_output_dir = results_directory
     writer = TestResultWriter(filesystem, port, root_output_dir, test_name)
 
     if driver_output.error:

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


--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py	2013-03-22 03:12:49 UTC (rev 146558)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py	2013-03-22 03:48:06 UTC (rev 146559)
@@ -50,6 +50,6 @@
         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(host.filesystem, ImageDiffTestPort(host), test_name,
+        test_result_writer.write_test_result(host.filesystem, ImageDiffTestPort(host), port.results_directory(), test_name,
                                              driver_output1, driver_output2, failures)
         self.assertEqual([0], used_tolerance_values)

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py (146558 => 146559)


--- trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py	2013-03-22 03:12:49 UTC (rev 146558)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py	2013-03-22 03:48:06 UTC (rev 146559)
@@ -649,6 +649,13 @@
         self.assertTrue(host.filesystem.exists('/tmp/layout-test-results/failures/flaky/text-actual.txt'))
         self.assertFalse(host.filesystem.exists('retries'))
 
+    def test_retrying_uses_retries_directory(self):
+        host = MockHost()
+        res, err, _ = logging_run(['--debug-rwt-logging', 'failures/unexpected/text-image-checksum.html'], tests_included=True, host=host)
+        self.assertEqual(res, 1)
+        self.assertTrue(host.filesystem.exists('/tmp/layout-test-results/failures/unexpected/text-image-checksum-actual.txt'))
+        self.assertTrue(host.filesystem.exists('/tmp/layout-test-results/retries/failures/unexpected/text-image-checksum-actual.txt'))
+
     def test_run_order__inline(self):
         # These next tests test that we run the tests in ascending alphabetical
         # order per directory. HTTP tests are sharded separately from other tests,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to