2010-09-30 Adam Barth <abarth@webkit.org>
authorabarth@webkit.org <abarth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Sep 2010 18:50:55 +0000 (18:50 +0000)
committerabarth@webkit.org <abarth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Sep 2010 18:50:55 +0000 (18:50 +0000)
        Reviewed by Eric Seidel.

        webkit-patch find-flaky-tests should print results URLs
        https://bugs.webkit.org/show_bug.cgi?id=46917

        Printing out the results URL makes find-flaky-tests more actionable
        because you can see what happens when a test fails.  The output from
        the script is still pretty noisy, but it seems useful.

        * Scripts/webkitpy/tool/commands/queries.py:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@68813 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKitTools/ChangeLog
WebKitTools/Scripts/webkitpy/tool/commands/queries.py

index 13b324975f14540286d76704ff0c037c50744164..4db6a781ae58f7c9bfc3de10e91a0c8439bec915 100644 (file)
@@ -1,3 +1,16 @@
+2010-09-30  Adam Barth  <abarth@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        webkit-patch find-flaky-tests should print results URLs
+        https://bugs.webkit.org/show_bug.cgi?id=46917
+
+        Printing out the results URL makes find-flaky-tests more actionable
+        because you can see what happens when a test fails.  The output from
+        the script is still pretty noisy, but it seems useful.
+
+        * Scripts/webkitpy/tool/commands/queries.py:
+
 2010-09-30  Chris Marrin  <cmarrin@apple.com>
 
         Reviewed by Simon Fraser.
index 620afbc464c5fddbcbbb59af790fd3d8b6842271..478fac2c145ecf2b61387c98cae8441d168c01d2 100644 (file)
@@ -278,18 +278,18 @@ class FindFlakyTests(AbstractDeclarativeCommand):
         build = builder.build_for_revision(revision, allow_failed_lookups=True)
         if not build:
             print "No build for %s" % revision
-            return None
+            return (None, None)
         results = build.layout_test_results()
         if not results:
             print "No results build %s (r%s)" % (build._number, build.revision())
-            return None
+            return (None, None)
         failures = set(results.failing_tests())
         if len(failures) >= 20:
             # FIXME: We may need to move this logic into the LayoutTestResults class.
             # The buildbot stops runs after 20 failures so we don't have full results to work with here.
             print "Too many failures in build %s (r%s), ignoring." % (build._number, build.revision())
-            return None
-        return failures
+            return (None, None)
+        return (build, failures)
 
     def _increment_statistics(self, flaky_tests, flaky_test_statistics):
         for test in flaky_tests:
@@ -306,20 +306,23 @@ class FindFlakyTests(AbstractDeclarativeCommand):
         flaky_test_statistics = {}
         all_previous_failures = set([])
         one_time_previous_failures = set([])
+        previous_build = None
         for i in range(limit):
             revision = start_revision - i
             print "Analyzing %s ... " % revision,
-            failures = self._find_failures(builder, revision)
+            (build, failures) = self._find_failures(builder, revision)
             if failures == None:
                 # Notice that we don't loop on the empty set!
                 continue
             print "has %s failures" % len(failures)
             flaky_tests = one_time_previous_failures - failures
             if flaky_tests:
-                print "Flaky tests: %s" % sorted(flaky_tests)
+                print "Flaky tests: %s %s" % (sorted(flaky_tests),
+                                              previous_build.results_url())
             self._increment_statistics(flaky_tests, flaky_test_statistics)
             one_time_previous_failures = failures - all_previous_failures
             all_previous_failures = failures
+            previous_build = build
         self._print_statistics(flaky_test_statistics)
 
     def _builder_to_analyze(self):