Title: [93830] trunk/Tools
Revision
93830
Author
[email protected]
Date
2011-08-25 16:02:55 -0700 (Thu, 25 Aug 2011)

Log Message

garden-o-matic summary view should provide information on builders still in flight.
https://bugs.webkit.org/show_bug.cgi?id=66992

Reviewed by Adam Barth.

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js: Added grabbing the list of in-flight builders.
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js: Added buildersInFlightForRevision.
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model_unittests.js: Added tests.
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js: Split off updating builder results to own method.
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: Added tests.

Modified Paths

Diff

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


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js	2011-08-25 22:58:28 UTC (rev 93829)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js	2011-08-25 23:02:55 UTC (rev 93830)
@@ -94,9 +94,10 @@
     {
         var key = failureAnalysis.newestPassingRevision + "+" + failureAnalysis.oldestFailingRevision;
         var failure = this._testFailures.get(key);
+        var impliedFirstFailingRevision = failureAnalysis.newestPassingRevision + 1;
         if (!failure) {
             failure = new ui.notifications.TestFailures();
-            model.commitDataListForRevisionRange(failureAnalysis.newestPassingRevision + 1, failureAnalysis.oldestFailingRevision).forEach(function(commitData) {
+            model.commitDataListForRevisionRange(impliedFirstFailingRevision, failureAnalysis.oldestFailingRevision).forEach(function(commitData) {
                 failure.addCommitData(commitData);
             });
             this._view.add(failure);
@@ -105,6 +106,7 @@
             }.bind(this));
         }
         failure.addFailureAnalysis(failureAnalysis);
+        failure.updateBuilderResults(model.buildersInFlightForRevision(impliedFirstFailingRevision));
         this._testFailures.update(key, failure);
     },
     purge: function() {

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js (93829 => 93830)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js	2011-08-25 22:58:28 UTC (rev 93829)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js	2011-08-25 23:02:55 UTC (rev 93830)
@@ -129,6 +129,17 @@
     return result;
 };
 
+model.buildersInFlightForRevision = function(revision)
+{
+    var builders = {};
+    Object.keys(model.state.resultsByBuilder).forEach(function(builderName) {
+        var results = model.state.resultsByBuilder[builderName];
+        if (parseInt(results.revision) < revision)
+            builders[builderName] = { actual: 'BUILDING' };
+    });
+    return builders;
+};
+
 model.updateResultsByBuilder = function(callback)
 {
     results.fetchResultsByBuilder(Object.keys(config.kBuilders), function(resultsByBuilder) {

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model_unittests.js (93829 => 93830)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model_unittests.js	2011-08-25 22:58:28 UTC (rev 93829)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model_unittests.js	2011-08-25 23:02:55 UTC (rev 93830)
@@ -208,4 +208,35 @@
     });
 });
 
+test("buildersInFlightForRevision", 3, function() {
+    var unmock = model.state.resultsByBuilder;
+    model.state.resultsByBuilder = {
+        'Mr. Beasley': {revision: '5'},
+        'Mr Dixon': {revision: '1'},
+        'Mr. Sabatini': {revision: '4'},
+        'Bob': {revision: '6'}
+    };
+    deepEqual(model.buildersInFlightForRevision(1), {});
+    deepEqual(model.buildersInFlightForRevision(3), {
+      "Mr Dixon": {
+        "actual": "BUILDING"
+      }
+    });
+    deepEqual(model.buildersInFlightForRevision(10), {
+      "Mr. Beasley": {
+        "actual": "BUILDING"
+      },
+      "Mr Dixon": {
+        "actual": "BUILDING"
+      },
+      "Mr. Sabatini": {
+        "actual": "BUILDING"
+      },
+      "Bob": {
+        "actual": "BUILDING"
+      }
+    });
+    model.state.resultsByBuilder = unmock;
+});
+
 })();

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


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js	2011-08-25 22:58:28 UTC (rev 93829)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js	2011-08-25 23:02:55 UTC (rev 93830)
@@ -151,12 +151,16 @@
             return child.equals(failureAnalysis);
         });
     },
+    updateBuilderResults: function(resultNodesByBuilder)
+    {
+        this._where.add(resultNodesByBuilder);
+    },
     addFailureAnalysis: function(failureAnalysis)
     {
         if (this.containsFailureAnalysis(failureAnalysis))
             return;
         this._testNameList.push(failureAnalysis.testName);
-        this._where.add(failureAnalysis.resultNodesByBuilder);
+        this.updateBuilderResults(failureAnalysis.resultNodesByBuilder);
         return this._effects.appendChild(new ui.notifications.FailingTest(failureAnalysis));
     },
     addCommitData: function(commitData)

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


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js	2011-08-25 22:58:28 UTC (rev 93829)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js	2011-08-25 23:02:55 UTC (rev 93830)
@@ -90,8 +90,16 @@
     equal(suspiciousCommit.innerHTML, '<div class="description"><a href="" author (reviewer)</div><ul class="actions"><li><button>Roll out</button></li></ul>');
 });
 
-test('TestFailures', 11, function() {
+test('TestFailures', 13, function() {
     var testFailures = new ui.notifications.TestFailures();
+    deepEqual(Object.getOwnPropertyNames(testFailures.__proto__), [
+        "init",
+        "testNameList",
+        "updateBuilderResults",
+        "addFailureAnalysis",
+        "containsFailureAnalysis",
+        "addCommitData"
+    ]);
     equal(testFailures.tagName, 'LI');
     equal(testFailures.innerHTML,
         '<time class="relative">Just now</time>' +
@@ -214,6 +222,46 @@
             '<li><button>Examine</button></li>' +
         '</ul>');
 
+    testFailures.updateBuilderResults({'Webkit Mac10.5 (CG)': { actual: 'BUILDING'}});
+    equal(testFailures.innerHTML,
+        '<time class="relative">10 minutes ago</time>' +
+        '<table class="failures">' +
+            '<thead><tr><td>type</td><td>release</td><td>debug</td></tr></thead>' +
+            '<tbody>' +
+                '<tr>' +
+                    '<td>TEXT</td>' +
+                    '<td></td>' +
+                    '<td><div><span class="build-type">64-bit</span><span class="version">lucid</span></div></td>' +
+                '</tr>' +
+                '<tr>' +
+                    '<td>BUILDING</td>' +
+                    '<td><div><span class="version">leopard</span></div></td>' +
+                    '<td></td>' +
+                '</tr>' +
+            '</tbody>' +
+        '</table>' +
+        '<div class="what">' +
+            '<div class="problem">' +
+                '<ul class="effects">' +
+                    '<li>test</li>' +
+                    '<li>foo</li>' +
+                '</ul>' +
+                '<ul class="causes">' +
+                    '<li>' +
+                        '<div class="description">' +
+                            '<a href="" author (reviewer)'+
+                        '</div>' +
+                        '<ul class="actions">' +
+                            '<li><button>Roll out</button></li>' +
+                        '</ul>' +
+                    '</li>' +
+                '</ul>' +
+            '</div>' +
+        '</div>' +
+        '<ul class="actions">' +
+            '<li><button>Examine</button></li>' +
+        '</ul>');
+
 });
 
 test('BuildersFailing', 1, function() {

Modified: trunk/Tools/ChangeLog (93829 => 93830)


--- trunk/Tools/ChangeLog	2011-08-25 22:58:28 UTC (rev 93829)
+++ trunk/Tools/ChangeLog	2011-08-25 23:02:55 UTC (rev 93830)
@@ -1,3 +1,16 @@
+2011-08-25  Dimitri Glazkov  <[email protected]>
+
+        garden-o-matic summary view should provide information on builders still in flight.
+        https://bugs.webkit.org/show_bug.cgi?id=66992
+
+        Reviewed by Adam Barth.
+
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js: Added grabbing the list of in-flight builders.
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js: Added buildersInFlightForRevision.
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model_unittests.js: Added tests.
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js: Split off updating builder results to own method.
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: Added tests.
+
 2011-08-25  Adam Barth  <[email protected]>
 
         webkit-patch rebaseline-expectations don't work when run outside the root
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to