[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

abarth at webkit.org abarth at webkit.org
Wed Dec 22 13:51:01 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit bd1c0ed555475df17b792470b41f25de5b025b59
Author: abarth at webkit.org <abarth at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Sep 28 07:21:32 2010 +0000

    2010-09-28  Adam Barth  <abarth at webkit.org>
    
            Reviewed by Eric Seidel.
    
            Move RegressionWindow further up the dependency chain
            https://bugs.webkit.org/show_bug.cgi?id=46698
    
            Baby steps towards pushing this information into bug posts.
    
            * Scripts/webkitpy/common/net/buildbot.py:
            * Scripts/webkitpy/common/net/buildbot_unittest.py:
            * Scripts/webkitpy/common/net/regressionwindow.py:
            * Scripts/webkitpy/tool/commands/queries.py:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68495 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index fadef64..25a5f0c 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,17 @@
+2010-09-28  Adam Barth  <abarth at webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        Move RegressionWindow further up the dependency chain
+        https://bugs.webkit.org/show_bug.cgi?id=46698
+
+        Baby steps towards pushing this information into bug posts.
+
+        * Scripts/webkitpy/common/net/buildbot.py:
+        * Scripts/webkitpy/common/net/buildbot_unittest.py:
+        * Scripts/webkitpy/common/net/regressionwindow.py:
+        * Scripts/webkitpy/tool/commands/queries.py:
+
 2010-09-27  Daniel Bates  <dbates at rim.com>
 
         Reviewed by Adam Barth.
diff --git a/WebKitTools/Scripts/webkitpy/common/net/buildbot.py b/WebKitTools/Scripts/webkitpy/common/net/buildbot.py
index 91f6383..90e5e97 100644
--- a/WebKitTools/Scripts/webkitpy/common/net/buildbot.py
+++ b/WebKitTools/Scripts/webkitpy/common/net/buildbot.py
@@ -182,16 +182,16 @@ class Builder(object):
         # with red build, so we've found our failure transition.
         return RegressionWindow(current_build, build_after_current_build, common_failures=common_failures)
 
-    def blameworthy_revisions(self, red_build_number, look_back_limit=30, avoid_flakey_tests=True):
+    def find_blameworthy_regression_window(self, red_build_number, look_back_limit=30, avoid_flakey_tests=True):
         red_build = self.build(red_build_number)
         regression_window = self.find_regression_window(red_build, look_back_limit)
         if not regression_window.build_before_failure():
-            return [] # We ran off the limit of our search
+            return None  # We ran off the limit of our search
         # If avoid_flakey_tests, require at least 2 bad builds before we
         # suspect a real failure transition.
         if avoid_flakey_tests and regression_window.failing_build() == red_build:
-            return []
-        return regression_window.suspect_revisions()
+            return None
+        return regression_window
 
 
 # FIXME: This should be unified with all the layout test results code in the layout_tests package
@@ -458,7 +458,8 @@ class BuildBot(object):
             if builder_status["is_green"]:
                 continue
             builder = self.builder_with_name(builder_status["name"])
-            revisions = builder.blameworthy_revisions(builder_status["build_number"])
+            regression_window = builder.find_blameworthy_regression_window(builder_status["build_number"])
+            revisions = regression_window.revisions() if regression_window else []
             for revision in revisions:
                 failing_bots = revision_to_failing_bots.get(revision, [])
                 failing_bots.append(builder)
diff --git a/WebKitTools/Scripts/webkitpy/common/net/buildbot_unittest.py b/WebKitTools/Scripts/webkitpy/common/net/buildbot_unittest.py
index fcc1426..c99ab32 100644
--- a/WebKitTools/Scripts/webkitpy/common/net/buildbot_unittest.py
+++ b/WebKitTools/Scripts/webkitpy/common/net/buildbot_unittest.py
@@ -93,14 +93,14 @@ class BuilderTest(unittest.TestCase):
         self.assertEqual(regression_window.build_before_failure().revision(), 1006)
         self.assertEqual(regression_window.failing_build().revision(), 1007)
 
-    def test_blameworthy_revisions(self):
-        self.assertEqual(self.builder.blameworthy_revisions(10), [1004])
-        self.assertEqual(self.builder.blameworthy_revisions(10, look_back_limit=2), [])
+    def test_find_blameworthy_regression_window(self):
+        self.assertEqual(self.builder.find_blameworthy_regression_window(10).revisions(), [1004])
+        self.assertEqual(self.builder.find_blameworthy_regression_window(10, look_back_limit=2), None)
         # Flakey test avoidance requires at least 2 red builds:
-        self.assertEqual(self.builder.blameworthy_revisions(4), [])
-        self.assertEqual(self.builder.blameworthy_revisions(4, avoid_flakey_tests=False), [1004])
+        self.assertEqual(self.builder.find_blameworthy_regression_window(4), None)
+        self.assertEqual(self.builder.find_blameworthy_regression_window(4, avoid_flakey_tests=False).revisions(), [1004])
         # Green builder:
-        self.assertEqual(self.builder.blameworthy_revisions(3), [])
+        self.assertEqual(self.builder.find_blameworthy_regression_window(3), None)
 
     def test_build_caching(self):
         self.assertEqual(self.builder.build(10), self.builder.build(10))
diff --git a/WebKitTools/Scripts/webkitpy/common/net/regressionwindow.py b/WebKitTools/Scripts/webkitpy/common/net/regressionwindow.py
index 7020f62..231459f 100644
--- a/WebKitTools/Scripts/webkitpy/common/net/regressionwindow.py
+++ b/WebKitTools/Scripts/webkitpy/common/net/regressionwindow.py
@@ -42,7 +42,7 @@ class RegressionWindow(object):
     def common_failures(self):
         return self._common_failures
 
-    def suspect_revisions(self):
+    def revisions(self):
         revisions = range(self._failing_build.revision(), self._build_before_failure.revision(), -1)
         revisions.reverse()
         return revisions
diff --git a/WebKitTools/Scripts/webkitpy/tool/commands/queries.py b/WebKitTools/Scripts/webkitpy/tool/commands/queries.py
index 73b889a..51c60b6 100644
--- a/WebKitTools/Scripts/webkitpy/tool/commands/queries.py
+++ b/WebKitTools/Scripts/webkitpy/tool/commands/queries.py
@@ -123,8 +123,6 @@ class WhatBroke(AbstractDeclarativeCommand):
     def _print_builder_line(self, builder_name, max_name_width, status_message):
         print "%s : %s" % (builder_name.ljust(max_name_width), status_message)
 
-    # FIXME: This is slightly different from Builder.suspect_revisions_for_green_to_red_transition
-    # due to needing to detect the "hit the limit" case an print a special message.
     def _print_blame_information_for_builder(self, builder_status, name_width, avoid_flakey_tests=True):
         builder = self._tool.buildbot.builder_with_name(builder_status["name"])
         red_build = builder.build(builder_status["build_number"])
@@ -136,12 +134,12 @@ class WhatBroke(AbstractDeclarativeCommand):
             self._print_builder_line(builder.name(), name_width, "FAIL (blame-list: sometime before %s?)" % regression_window.failing_build().revision())
             return
 
-        suspect_revisions = regression_window.suspect_revisions()
+        revisions = regression_window.revisions()
         first_failure_message = ""
         if (regression_window.failing_build() == builder.build(builder_status["build_number"])):
             first_failure_message = " FIRST FAILURE, possibly a flaky test"
-        self._print_builder_line(builder.name(), name_width, "FAIL (blame-list: %s%s)" % (suspect_revisions, first_failure_message))
-        for revision in suspect_revisions:
+        self._print_builder_line(builder.name(), name_width, "FAIL (blame-list: %s%s)" % (revisions, first_failure_message))
+        for revision in revisions:
             commit_info = self._tool.checkout().commit_info_for_revision(revision)
             if commit_info:
                 print commit_info.blame_string(self._tool.bugs)
@@ -201,10 +199,10 @@ class FailureReason(AbstractDeclarativeCommand):
 
     def _print_blame_information_for_transition(self, green_build, red_build, failing_tests):
         regression_window = RegressionWindow(green_build, red_build)
-        suspect_revisions = regression_window.suspect_revisions()
+        revisions = regression_window.revisions()
         print "SUCCESS: Build %s (r%s) was the first to show failures: %s" % (red_build._number, red_build.revision(), failing_tests)
         print "Suspect revisions:"
-        for revision in suspect_revisions:
+        for revision in revisions:
             commit_info = self._tool.checkout().commit_info_for_revision(revision)
             if commit_info:
                 print commit_info.blame_string(self._tool.bugs)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list