diff options
| author | Ben Murdoch <benm@google.com> | 2011-05-13 16:23:25 +0100 |
|---|---|---|
| committer | Ben Murdoch <benm@google.com> | 2011-05-16 11:35:02 +0100 |
| commit | 65f03d4f644ce73618e5f4f50dd694b26f55ae12 (patch) | |
| tree | f478babb801e720de7bfaee23443ffe029f58731 /Tools/Scripts/webkitpy/tool/commands | |
| parent | 47de4a2fb7262c7ebdb9cd133ad2c54c187454d0 (diff) | |
| download | external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.zip external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.tar.gz external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.tar.bz2 | |
Merge WebKit at r75993: Initial merge by git.
Change-Id: I602bbdc3974787a3b0450456a30a7868286921c3
Diffstat (limited to 'Tools/Scripts/webkitpy/tool/commands')
| -rw-r--r-- | Tools/Scripts/webkitpy/tool/commands/queues.py | 24 | ||||
| -rw-r--r-- | Tools/Scripts/webkitpy/tool/commands/queues_unittest.py | 24 |
2 files changed, 45 insertions, 3 deletions
diff --git a/Tools/Scripts/webkitpy/tool/commands/queues.py b/Tools/Scripts/webkitpy/tool/commands/queues.py index 5628543..42321cf 100644 --- a/Tools/Scripts/webkitpy/tool/commands/queues.py +++ b/Tools/Scripts/webkitpy/tool/commands/queues.py @@ -309,12 +309,32 @@ class CommitQueue(AbstractPatchQueue, StepSequenceErrorHandler, CommitQueueTaskD return None return LayoutTestResults.results_from_string(results_html) + def _results_directory(self): + results_path = self._tool.port().layout_tests_results_path() + # FIXME: This is wrong in two ways: + # 1. It assumes that results.html is at the top level of the results tree. + # 2. This uses the "old" ports.py infrastructure instead of the new layout_tests/port + # which will not support Chromium. However the new arch doesn't work with old-run-webkit-tests + # so we have to use this for now. + return os.path.dirname(results_path) + + def archive_last_layout_test_results(self, patch): + results_directory = self._results_directory() + results_name, _ = os.path.splitext(os.path.basename(results_directory)) + # Note: We name the zip with the bug_id instead of patch_id to match work_item_log_path(). + zip_path = self._tool.workspace.find_unused_filename(self._log_directory(), "%s-%s" % (patch.bug_id(), results_name), "zip") + archive = self._tool.workspace.create_zip(zip_path, results_directory) + # Remove the results directory to prevent http logs, etc. from getting huge between runs. + # We could have create_zip remove the original, but this is more explicit. + self._tool.filesystem.remove_tree(results_directory, ignore_errors=True) + return archive + def refetch_patch(self, patch): return self._tool.bugs.fetch_attachment(patch.id()) - def report_flaky_tests(self, patch, flaky_test_results): + def report_flaky_tests(self, patch, flaky_test_results, results_archive=None): reporter = FlakyTestReporter(self._tool, self.name) - reporter.report_flaky_tests(flaky_test_results, patch) + reporter.report_flaky_tests(patch, flaky_test_results, results_archive) # StepSequenceErrorHandler methods diff --git a/Tools/Scripts/webkitpy/tool/commands/queues_unittest.py b/Tools/Scripts/webkitpy/tool/commands/queues_unittest.py index 34a6a64..8f5c9e6 100644 --- a/Tools/Scripts/webkitpy/tool/commands/queues_unittest.py +++ b/Tools/Scripts/webkitpy/tool/commands/queues_unittest.py @@ -27,9 +27,11 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import os +import StringIO from webkitpy.common.checkout.scm import CheckoutNeedsUpdate from webkitpy.common.net.bugzilla import Attachment +from webkitpy.common.system.filesystem_mock import MockFileSystem from webkitpy.common.system.outputcapture import OutputCapture from webkitpy.layout_tests.layout_package import test_results from webkitpy.layout_tests.layout_package import test_failures @@ -342,12 +344,14 @@ The commit-queue just saw foo/bar.html flake (Text diff mismatch) while processi Port: MockPort Platform: MockPlatform 1.0 --- End comment --- +MOCK add_attachment_to_bug: bug_id=76, description=Failure diff from bot filename=failure.diff MOCK bug comment: bug_id=76, cc=None --- Begin comment --- The commit-queue just saw bar/baz.html flake (Text diff mismatch) while processing attachment 197 on bug 42. Port: MockPort Platform: MockPlatform 1.0 --- End comment --- +MOCK add_attachment_to_bug: bug_id=76, description=Archive of layout-test-results from bot filename=layout-test-results.zip MOCK bug comment: bug_id=42, cc=None --- Begin comment --- The commit-queue encountered the following flaky tests while processing attachment 197: @@ -360,7 +364,19 @@ The commit-queue is continuing to process your patch. """ test_names = ["foo/bar.html", "bar/baz.html"] test_results = [self._mock_test_result(name) for name in test_names] - OutputCapture().assert_outputs(self, queue.report_flaky_tests, [QueuesTest.mock_work_item, test_results], expected_stderr=expected_stderr) + + class MockZipFile(object): + def __init__(self): + self.fp = StringIO() + + def read(self, path): + return "" + + def namelist(self): + # This is intentionally missing one diffs.txt to exercise the "upload the whole zip" codepath. + return ['foo/bar-diffs.txt'] + + OutputCapture().assert_outputs(self, queue.report_flaky_tests, [QueuesTest.mock_work_item, test_results, MockZipFile()], expected_stderr=expected_stderr) def test_layout_test_results(self): queue = CommitQueue() @@ -370,6 +386,12 @@ The commit-queue is continuing to process your patch. queue._read_file_contents = lambda path: "" self.assertEquals(queue.layout_test_results(), None) + def test_archive_last_layout_test_results(self): + queue = CommitQueue() + queue.bind_to_tool(MockTool()) + patch = queue._tool.bugs.fetch_attachment(128) + queue.archive_last_layout_test_results(patch) + class StyleQueueTest(QueuesTest): def test_style_queue(self): |
