Title: [157283] trunk/Tools
Revision
157283
Author
k...@webkit.org
Date
2013-10-10 18:41:52 -0700 (Thu, 10 Oct 2013)

Log Message

webkit-patch failure-reason should allow specifying failures one is interested in
https://bugs.webkit.org/show_bug.cgi?id=122554

Patch by Gustavo Noronha Silva <gustavo.noro...@collabora.com> on 2013-10-10
Reviewed by Darin Adler.

* Scripts/webkitpy/tool/commands/queries.py:
(FailureReason):
(FailureReason._explain_failures_for_builder): keep track of explained failures and drop out of the
loop if the ones we're interested in been explained.
(FailureReason._done_explaining): check the failures we're interested in have been explained, if any.
(FailureReason.execute): initialize failures to explain and the explained set.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (157282 => 157283)


--- trunk/Tools/ChangeLog	2013-10-11 01:14:04 UTC (rev 157282)
+++ trunk/Tools/ChangeLog	2013-10-11 01:41:52 UTC (rev 157283)
@@ -1,3 +1,17 @@
+2013-10-10  Gustavo Noronha Silva  <gustavo.noro...@collabora.com>
+
+        webkit-patch failure-reason should allow specifying failures one is interested in
+        https://bugs.webkit.org/show_bug.cgi?id=122554
+
+        Reviewed by Darin Adler.
+
+        * Scripts/webkitpy/tool/commands/queries.py:
+        (FailureReason):
+        (FailureReason._explain_failures_for_builder): keep track of explained failures and drop out of the
+        loop if the ones we're interested in been explained.
+        (FailureReason._done_explaining): check the failures we're interested in have been explained, if any.
+        (FailureReason.execute): initialize failures to explain and the explained set.
+
 2013-10-10  Filip Pizlo  <fpi...@apple.com>
 
         Make sure that DataTypes.h is in the binary drop.

Modified: trunk/Tools/Scripts/webkitpy/tool/commands/queries.py (157282 => 157283)


--- trunk/Tools/Scripts/webkitpy/tool/commands/queries.py	2013-10-11 01:14:04 UTC (rev 157282)
+++ trunk/Tools/Scripts/webkitpy/tool/commands/queries.py	2013-10-11 01:41:52 UTC (rev 157283)
@@ -247,6 +247,7 @@
 class FailureReason(Command):
     name = "failure-reason"
     help_text = "Lists revisions where individual test failures started at %s" % config_urls.buildbot_url
+    arguments_names = "[LAYOUT_TESTS]"
 
     def _blame_line_for_revision(self, revision):
         try:
@@ -277,7 +278,7 @@
         results_to_explain = set(layout_test_results.failing_tests())
         last_build_with_results = build
         print "Starting at %s" % revision_to_test
-        while results_to_explain:
+        while results_to_explain and not self._done_explaining():
             revision_to_test -= 1
             new_build = builder.build_for_revision(revision_to_test, allow_failed_lookups=True)
             if not new_build:
@@ -299,6 +300,7 @@
                 print "No change in build %s (r%s), %s unexplained failures (%s in this build)" % (build._number, build.revision(), len(results_to_explain), len(failures))
                 last_build_with_results = build
                 continue
+            self.explained_failures.update(fixed_results)
             regression_window = RegressionWindow(build, last_build_with_results)
             self._print_blame_information_for_transition(regression_window, fixed_results)
             last_build_with_results = build
@@ -321,9 +323,17 @@
             if status["name"] == chosen_name:
                 return (self._tool.buildbot.builder_with_name(chosen_name), status["built_revision"])
 
+    def _done_explaining(self):
+        if not self.failures_to_explain:
+            return False
+
+        return self.explained_failures.issuperset(self.failures_to_explain)
+
     def execute(self, options, args, tool):
         (builder, latest_revision) = self._builder_to_explain()
         start_revision = self._tool.user.prompt("Revision to walk backwards from? [%s] " % latest_revision) or latest_revision
+        self.failures_to_explain = args
+        self.explained_failures = set()
         if not start_revision:
             print "Revision required."
             return 1
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to