Title: [94312] trunk/Tools
Revision
94312
Author
[email protected]
Date
2011-09-01 10:54:58 -0700 (Thu, 01 Sep 2011)

Log Message

garden-o-matic should let the gardener assign blame for a group of test failures
https://bugs.webkit.org/show_bug.cgi?id=67379

Reviewed by Dimitri Glazkov.

If a group of test failures has a large revision range, the gardener
might wish to blame a specific revision for the failure.  Currently,
this only effect of assigning blame in this way is to hide the other
suspect commits.

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js:

Modified Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js (94311 => 94312)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js	2011-09-01 17:53:06 UTC (rev 94311)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js	2011-09-01 17:54:58 UTC (rev 94312)
@@ -93,6 +93,9 @@
                 $(suspiciousCommit).bind('rollout', function() {
                     this.onRollout(commitData.revision, failure.testNameList());
                 }.bind(this));
+                $(failure).bind('blame', function() {
+                    this.onBlame(failure, commitData);
+                }.bind(this));
             }, this);
             this._view.add(failure);
             $(failure).bind('examine', function() {
@@ -130,6 +133,15 @@
         $(resultsContainer).empty().append(resultsView);
         onebar.select('results');
     },
+    onBlame: function(failure, commitData)
+    {
+        failure.pinToCommitData(commitData);
+        $('.action', failure).each(function() {
+            // FIXME: This isn't the right way of finding and disabling this action.
+            if (this.textContent == 'Blame')
+                this.disabled = true;
+        });
+    },
     onRollout: function(revision, testNameList)
     {
         checkout.rollout(revision, ui.rolloutReasonForTestNameList(testNameList), $.noop);

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions.js (94311 => 94312)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions.js	2011-09-01 17:53:06 UTC (rev 94311)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions.js	2011-09-01 17:54:58 UTC (rev 94312)
@@ -31,6 +31,7 @@
 var Action = "" {
     init: function() {
         this._eventName = null;
+        $(this).addClass('action');
         this.addEventListener('click', function() {
             if (this._eventName)
                 $(this).trigger(this._eventName);
@@ -42,10 +43,19 @@
     }
 });
 
+ui.actions.Blame = base.extends(Action, {
+    init: function() {
+        this.textContent = 'Blame';
+        this._eventName = 'blame';
+        this.title = 'Blames this failure on this revision.'
+    }
+});
+
 ui.actions.Rollout = base.extends(Action, {
     init: function() {
         this.textContent = 'Roll out';
         this._eventName = 'rollout';
+        this.title = 'Rolls out this revision.'
     }
 });
 
@@ -53,6 +63,7 @@
     init: function() {
         this.textContent = 'Examine';
         this._eventName = 'examine';
+        this.title = 'Examine these failures in detail.'
     }
 });
 
@@ -63,18 +74,11 @@
     }
 });
 
-ui.actions.Close = base.extends(Action, {
-    init: function() {
-        this.textContent = 'Close';
-        this._eventName = 'close';
-    }
-});
-
 ui.actions.Next = base.extends(Action, {
     init: function() {
         this.innerHTML = '▶';
         this._eventName = 'next';
-        this.className = 'next';
+        $(this).addClass('next');
     }
 });
 
@@ -82,7 +86,7 @@
     init: function() {
         this.innerHTML = '◀';
         this._eventName = 'previous';
-        this.className = 'previous';
+        $(this).addClass('previous');
     }
 });
 

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions_unittests.js (94311 => 94312)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions_unittests.js	2011-09-01 17:53:06 UTC (rev 94311)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions_unittests.js	2011-09-01 17:54:58 UTC (rev 94312)
@@ -58,7 +58,7 @@
 test('default', 2, function() {
     var next = new ui.actions.Next();
     equal(next.makeDefault(), next);
-    equal(next.className, 'next default');
+    equal(next.className, 'action next default');
 });
 
 test('List', 1, function() {
@@ -68,9 +68,9 @@
         new ui.actions.Next()
     ]);
     equal(list.innerHTML,
-        '<li><button>Rebaseline</button></li>' +
-        '<li><button class="previous">\u25C0</button></li>' +
-        '<li><button class="next">\u25B6</button></li>');
+        '<li><button class="action">Rebaseline</button></li>' +
+        '<li><button class="action previous">\u25C0</button></li>' +
+        '<li><button class="action next">\u25B6</button></li>');
 });
 
 }());

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js (94311 => 94312)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js	2011-09-01 17:53:06 UTC (rev 94311)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js	2011-09-01 17:54:58 UTC (rev 94312)
@@ -89,7 +89,7 @@
     {
         this.textContent = testGroup;
     }
-})
+});
 
 var Cause = base.extends('li', {
     init: function()
@@ -97,7 +97,8 @@
         this._description = this.appendChild(document.createElement('div'));
         this._description.className = 'description';
         this.appendChild(new ui.actions.List([
-            new ui.actions.Rollout()
+            new ui.actions.Blame(),
+            new ui.actions.Rollout(),
         ]));
     }
 });
@@ -105,6 +106,7 @@
 ui.notifications.SuspiciousCommit = base.extends(Cause, {
     init: function(commitData)
     {
+        this._revision = commitData.revision;
         var linkToRevision = this._description.appendChild(document.createElement('a'));
         linkToRevision.href = ""
         linkToRevision.target = '_blank';
@@ -113,6 +115,10 @@
         this._addDescriptionPart('author', commitData);
         this._addDescriptionPart('reviewer', commitData);
     },
+    hasRevision: function(revision)
+    {
+        return this._revision == revision;
+    },
     _addDescriptionPart: function(part, commitData)
     {
         var content = commitData[part];
@@ -147,9 +153,10 @@
     init: function() {
         // FIXME: Convert actions to a link from test!
         this._problem.appendChild(new ui.actions.List([
-            new ui.actions.Examine()
+            new ui.actions.Examine().makeDefault(),
         ]));
         this._testNameList = [];
+        this._commitDataPinned = false;
     },
     testNameList: function()
     {
@@ -174,8 +181,21 @@
             this._effects.appendChild(new ui.notifications.FailingTestGroup(testGroup))
         }.bind(this));
     },
+    pinToCommitData: function(commitData)
+    {
+        if (this._commitDataPinned)
+            return;
+        this._commitDataPinned = true;
+        $(this._causes).children().each(function() {
+            if (this.hasRevision(commitData.revision))
+                return;
+            $(this).detach();
+        });
+    },
     addCommitData: function(commitData)
     {
+        if (this._commitDataPinned)
+            return null;
         var commitDataDate = new Date(commitData.time);
         if (this._time.date > commitDataDate); {
             this.setIndex(commitDataDate.getTime());

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js (94311 => 94312)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js	2011-09-01 17:53:06 UTC (rev 94311)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js	2011-09-01 17:54:58 UTC (rev 94312)
@@ -93,7 +93,8 @@
             '<span class="reviewer">reviewer</span>' +
         '</div>' +
         '<ul class="actions">' +
-            '<li><button>Roll out</button></li>' +
+            '<li><button class="action" title="Blames this failure on this revision.">Blame</button></li>' +
+            '<li><button class="action" title="Rolls out this revision.">Roll out</button></li>' +
         '</ul>');
 });
 
@@ -104,6 +105,7 @@
         "testNameList",
         "updateBuilderResults",
         "addFailureAnalysis",
+        "pinToCommitData",
         "_forEachTestGroup",
         "containsFailureAnalysis",
         "addCommitData"
@@ -121,7 +123,7 @@
             '<div class="problem">' +
                 '<ul class="effects"></ul>' +
                 '<ul class="actions">' +
-                    '<li><button>Examine</button></li>' +
+                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
                 '</ul>' +
             '</div>' +
             '<ul class="causes"></ul>' +
@@ -142,7 +144,7 @@
                     '<li>test</li>' +
                 '</ul>' +
                 '<ul class="actions">' +
-                    '<li><button>Examine</button></li>' +
+                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
                 '</ul>' +
             '</div>' +
             '<ul class="causes"></ul>' +
@@ -164,7 +166,7 @@
                     '<li>test</li>' +
                 '</ul>' +
                 '<ul class="actions">' +
-                    '<li><button>Examine</button></li>' +
+                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
                 '</ul>' +
             '</div>' +
             '<ul class="causes"></ul>' +
@@ -188,7 +190,7 @@
                     '<li>test</li>' +
                 '</ul>' +
                 '<ul class="actions">' +
-                    '<li><button>Examine</button></li>' +
+                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
                 '</ul>' +
             '</div>' +
             '<ul class="causes">' +
@@ -200,7 +202,8 @@
                         '<span class="reviewer">reviewer</span>' +
                     '</div>' +
                     '<ul class="actions">' +
-                        '<li><button>Roll out</button></li>' +
+                        '<li><button class="action" title="Blames this failure on this revision.">Blame</button></li>' +
+                        '<li><button class="action" title="Rolls out this revision.">Roll out</button></li>' +
                     '</ul>' +
                 '</li>' +
             '</ul>' +
@@ -229,7 +232,7 @@
                     '<li>foo</li>' +
                 '</ul>' +
                 '<ul class="actions">' +
-                    '<li><button>Examine</button></li>' +
+                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
                 '</ul>' +
             '</div>' +
             '<ul class="causes">' +
@@ -241,7 +244,8 @@
                         '<span class="reviewer">reviewer</span>' +
                     '</div>' +
                     '<ul class="actions">' +
-                        '<li><button>Roll out</button></li>' +
+                        '<li><button class="action" title="Blames this failure on this revision.">Blame</button></li>' +
+                        '<li><button class="action" title="Rolls out this revision.">Roll out</button></li>' +
                     '</ul>' +
                 '</li>' +
             '</ul>' +
@@ -274,7 +278,7 @@
                     '<li>foo</li>' +
                 '</ul>' +
                 '<ul class="actions">' +
-                    '<li><button>Examine</button></li>' +
+                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
                 '</ul>' +
             '</div>' +
             '<ul class="causes">' +
@@ -286,7 +290,8 @@
                         '<span class="reviewer">reviewer</span>' +
                     '</div>' +
                     '<ul class="actions">' +
-                        '<li><button>Roll out</button></li>' +
+                        '<li><button class="action" title="Blames this failure on this revision.">Blame</button></li>' +
+                        '<li><button class="action" title="Rolls out this revision.">Roll out</button></li>' +
                     '</ul>' +
                 '</li>' +
             '</ul>' +
@@ -315,7 +320,7 @@
                     '<li>path/another/test.html</li>' +
                 '</ul>' +
                 '<ul class="actions">' +
-                    '<li><button>Examine</button></li>' +
+                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
                 '</ul>' +
             '</div>' +
             '<ul class="causes"></ul>' +

Modified: trunk/Tools/ChangeLog (94311 => 94312)


--- trunk/Tools/ChangeLog	2011-09-01 17:53:06 UTC (rev 94311)
+++ trunk/Tools/ChangeLog	2011-09-01 17:54:58 UTC (rev 94312)
@@ -1,5 +1,21 @@
 2011-09-01  Adam Barth  <[email protected]>
 
+        garden-o-matic should let the gardener assign blame for a group of test failures
+        https://bugs.webkit.org/show_bug.cgi?id=67379
+
+        Reviewed by Dimitri Glazkov.
+
+        If a group of test failures has a large revision range, the gardener
+        might wish to blame a specific revision for the failure.  Currently,
+        this only effect of assigning blame in this way is to hide the other
+        suspect commits.
+
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js:
+
+2011-09-01  Adam Barth  <[email protected]>
+
         Hide garden-o-matic failure table until hover
         https://bugs.webkit.org/show_bug.cgi?id=67376
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to