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

Log Message

Add a "rebaseline" button to the garden-o-matic summary page
https://bugs.webkit.org/show_bug.cgi?id=67382

Reviewed by Dimitri Glazkov.

As much as we might wish folks to not rebaseline entire test groups at
once, the truth is that doing so is a common operation.  Adding a
button for this operation is likely to make folks happy.

This patch also cleans up a bunch of plumbing surrounding failureInfo
objects.

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js:

Modified Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js (94313 => 94314)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js	2011-09-01 17:56:19 UTC (rev 94313)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js	2011-09-01 17:57:09 UTC (rev 94314)
@@ -83,6 +83,13 @@
     return result;
 };
 
+base.flattenArray = function(arrayOfArrays)
+{
+    return arrayOfArrays.reduce(function(left, right) {
+        return left.concat(right);  
+    });
+};
+
 base.filterDictionary = function(dictionary, predicate)
 {
     var result = {};

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js (94313 => 94314)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js	2011-09-01 17:56:19 UTC (rev 94313)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js	2011-09-01 17:57:09 UTC (rev 94314)
@@ -72,6 +72,14 @@
     deepEqual(base.uniquifyArray(["a", "b", "b", "a"]), ["a", "b"]);
 });
 
+test("flattenArray", 5, function() {
+    deepEqual(base.flattenArray([]), []);
+    deepEqual(base.flattenArray([["a"]]), ["a"]);
+    deepEqual(base.flattenArray([["a",] ["b"]]), ["a", "b"]);
+    deepEqual(base.flattenArray([["a"], ["b", "c"]]), ["a", "b", "c"]);
+    deepEqual(base.flattenArray(["a"], [], ["b"]]), ["a", "b"]);
+});
+
 test("callInParallel", 4, function() {
     var expectedCall = [true, true, true];
     var expectCompletionCallback = true;

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js (94313 => 94314)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js	2011-09-01 17:56:19 UTC (rev 94313)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js	2011-09-01 17:57:09 UTC (rev 94314)
@@ -108,16 +108,12 @@
 {
     callIfCheckoutAvailable(function() {
         base.callInSequence(function(failureInfo, callback) {
-            var extensionList = Array.prototype.concat.apply([], failureInfo.failureTypeList.map(results.failureTypeToExtensionList));
-            base.callInSequence(function(extension, callback) {
-                net.post(config.kLocalServerURL + '/rebaseline?' + $.param({
-                    'builder': failureInfo.builderName,
-                    'test': failureInfo.testName,
-                    'extension': extension
-                }), function() {
-                    callback();
-                });
-            }, extensionList, callback);
+            net.post(config.kLocalServerURL + '/rebaseline?' + $.param({
+                'builder': failureInfo.builderName,
+                'test': failureInfo.testName,
+            }), function() {
+                callback();
+            });
         }, failureInfoList, function() {
             var testNameList = base.uniquifyArray(failureInfoList.map(function(failureInfo) { return failureInfo.testName; }));
             base.callInSequence(checkout.optimizeBaselines, testNameList, callback);

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js (94313 => 94314)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js	2011-09-01 17:56:19 UTC (rev 94313)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js	2011-09-01 17:57:09 UTC (rev 94314)
@@ -40,7 +40,7 @@
     simulator.post = function(url, data, callback)
     {
         equals(url, 'http://127.0.0.1:8127/updateexpectations');
-        equals(data, '[{"builderName":"WebKit Linux","testName":"another/test.svg","failureTypeList":["IMAGE"]}]');
+        equals(data, '[{"builderName":"WebKit Linux","testName":"another/test.svg"}]');
         simulator.scheduleCallback(callback);
     };
 
@@ -48,7 +48,6 @@
         checkout.updateExpectations([{
             'builderName': 'WebKit Linux',
             'testName': 'another/test.svg',
-            'failureTypeList': ['IMAGE'],
         }], function() {
             ok(true);
         });
@@ -84,25 +83,21 @@
         checkout.rebaseline([{
             'builderName': 'WebKit Linux',
             'testName': 'another/test.svg',
-            'failureTypeList': ['IMAGE'],
         }, {
             'builderName': 'WebKit Mac10.6',
             'testName': 'another/test.svg',
-            'failureTypeList': ['IMAGE+TEXT'],
         }, {
             'builderName': 'Webkit Vista',
             'testName': 'fast/test.html',
-            'failureTypeList': ['TEXT'],
         }], function() {
             ok(true);
         });
     });
 
     deepEqual(requestedURLs, [
-        "http://127.0.0.1:8127/rebaseline?builder=WebKit+Linux&test=another%2Ftest.svg&extension=png",
-        "http://127.0.0.1:8127/rebaseline?builder=WebKit+Mac10.6&test=another%2Ftest.svg&extension=txt",
-        "http://127.0.0.1:8127/rebaseline?builder=WebKit+Mac10.6&test=another%2Ftest.svg&extension=png",
-        "http://127.0.0.1:8127/rebaseline?builder=Webkit+Vista&test=fast%2Ftest.html&extension=txt",
+        "http://127.0.0.1:8127/rebaseline?builder=WebKit+Linux&test=another%2Ftest.svg",
+        "http://127.0.0.1:8127/rebaseline?builder=WebKit+Mac10.6&test=another%2Ftest.svg",
+        "http://127.0.0.1:8127/rebaseline?builder=Webkit+Vista&test=fast%2Ftest.html",
         "http://127.0.0.1:8127/optimizebaselines?test=another%2Ftest.svg",
         "http://127.0.0.1:8127/optimizebaselines?test=fast%2Ftest.html"
     ]);

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


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js	2011-09-01 17:56:19 UTC (rev 94313)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js	2011-09-01 17:57:09 UTC (rev 94314)
@@ -43,27 +43,18 @@
         $(this._view).bind('builderselected', this.onBuilderSelected.bind(this));
         $(this._view).bind('rebaseline', this.onRebaseline.bind(this));
     },
-    _failureInfoForTestAndBuilder: function(testName, builderName)
-    {
-        return {
-            'testName': testName,
-            'builderName': builderName,
-            'failureTypeList': results.failureTypeList(this._resultsByTest[testName][builderName].actual)
-        }
-    },
     showTest: function(testName)
     {
         var builderNameList = Object.keys(this._resultsByTest[testName]);
         this._view.setBuilderList(builderNameList)
-        this._view.showResults(this._failureInfoForTestAndBuilder(testName, builderNameList[0]));
+        this._view.showResults(results.failureInfoForTestAndBuilder(this._resultsByTest, testName, builderNameList[0]));
     },
     onTestSelected: function()
     {
         this.showTest(this._view.currentTestName());
     },
     onBuilderSelected: function() {
-        this._view.showResults(this._failureInfoForTestAndBuilder(this._view.currentTestName(),
-                                                                  this._view.currentBuilderName()));
+        this._view.showResults(results.failureInfoForTestAndBuilder(this._resultsByTest, this._view.currentTestName(), this._view.currentBuilderName()));
     },
     onRebaseline: function() {
         var testName = this._view.currentTestName();
@@ -101,6 +92,9 @@
             $(failure).bind('examine', function() {
                 this.onExamine(failure);
             }.bind(this));
+            $(failure).bind('rebaseline', function() {
+                this.onRebaseline(failure);
+            }.bind(this));
         }
         failure.addFailureAnalysis(failureAnalysis);
         failure.updateBuilderResults(model.buildersInFlightForRevision(impliedFirstFailingRevision));
@@ -133,6 +127,14 @@
         $(resultsContainer).empty().append(resultsView);
         onebar.select('results');
     },
+    onRebaseline: function(failures)
+    {
+        failureInfoList = base.flattenArray(failures.testNameList().map(model.unexpectedFailureInfoForTestName));
+        checkout.rebaseline(failureInfoList, function() {
+            // FIXME: We should have a better dialog than this!
+            alert('Rebaseline done! Please land with "webkit-patch land-cowboy".');
+        });
+    },
     onBlame: function(failure, commitData)
     {
         failure.pinToCommitData(commitData);

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


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js	2011-09-01 17:56:19 UTC (rev 94313)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js	2011-09-01 17:57:09 UTC (rev 94314)
@@ -185,6 +185,15 @@
     });
 };
 
+model.unexpectedFailureInfoForTestName = function(testName)
+{
+    var resultsByTest = results.unexpectedFailuresByTest(model.state.resultsByBuilder);
+
+    return Object.keys(resultsByTest[testName]).map(function(builderName) {
+        return results.failureInfoForTestAndBuilder(resultsByTest, testName, builderName);
+    });
+};
+
 model.analyzeUnexpectedSuccesses = function(callback)
 {
     var unexpectedSuccesses = results.unexpectedSuccessesByTest(model.state.resultsByBuilder);

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js (94313 => 94314)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js	2011-09-01 17:56:19 UTC (rev 94313)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js	2011-09-01 17:57:09 UTC (rev 94314)
@@ -295,6 +295,15 @@
     return resultsByTest(resultsByBuilder, results.unexpectedSuccesses);
 };
 
+results.failureInfoForTestAndBuilder = function(resultsByTest, testName, builderName)
+{
+    return {
+        'testName': testName,
+        'builderName': builderName,
+        'failureTypeList': results.failureTypeList(resultsByTest[testName][builderName].actual)
+    }
+};
+
 results.collectUnexpectedResults = function(dictionaryOfResultNodes)
 {
     var collectedResults = [];

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js (94313 => 94314)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js	2011-09-01 17:56:19 UTC (rev 94313)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js	2011-09-01 17:57:09 UTC (rev 94314)
@@ -106,6 +106,18 @@
     });
 });
 
+test("failureInfoForTestAndBuilder", 1, function() {
+    var unexpectedFailuresByTest = results.unexpectedFailuresByTest({
+        "Mock Builder": kExampleResultsJSON
+    });
+    var failureInfo = results.failureInfoForTestAndBuilder(unexpectedFailuresByTest, "userscripts/another-test.html", "Mock Builder");
+    deepEqual(failureInfo, {
+        "testName": "userscripts/another-test.html",
+        "builderName": "Mock Builder",
+        "failureTypeList": ["TEXT"],
+    });
+});
+
 test("resultKind", 12, function() {
     equals(results.resultKind("http://example.com/foo-actual.txt"), "actual");
     equals(results.resultKind("http://example.com/foo-expected.txt"), "expected");

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


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js	2011-09-01 17:56:19 UTC (rev 94313)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js	2011-09-01 17:57:09 UTC (rev 94314)
@@ -154,6 +154,7 @@
         // FIXME: Convert actions to a link from test!
         this._problem.appendChild(new ui.actions.List([
             new ui.actions.Examine().makeDefault(),
+            new ui.actions.Rebaseline(),
         ]));
         this._testNameList = [];
         this._commitDataPinned = false;

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


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js	2011-09-01 17:56:19 UTC (rev 94313)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js	2011-09-01 17:57:09 UTC (rev 94314)
@@ -124,6 +124,7 @@
                 '<ul class="effects"></ul>' +
                 '<ul class="actions">' +
                     '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
+                    '<li><button class="action">Rebaseline</button></li>' +
                 '</ul>' +
             '</div>' +
             '<ul class="causes"></ul>' +
@@ -145,6 +146,7 @@
                 '</ul>' +
                 '<ul class="actions">' +
                     '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
+                    '<li><button class="action">Rebaseline</button></li>' +
                 '</ul>' +
             '</div>' +
             '<ul class="causes"></ul>' +
@@ -167,6 +169,7 @@
                 '</ul>' +
                 '<ul class="actions">' +
                     '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
+                    '<li><button class="action">Rebaseline</button></li>' +
                 '</ul>' +
             '</div>' +
             '<ul class="causes"></ul>' +
@@ -191,6 +194,7 @@
                 '</ul>' +
                 '<ul class="actions">' +
                     '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
+                    '<li><button class="action">Rebaseline</button></li>' +
                 '</ul>' +
             '</div>' +
             '<ul class="causes">' +
@@ -233,6 +237,7 @@
                 '</ul>' +
                 '<ul class="actions">' +
                     '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
+                    '<li><button class="action">Rebaseline</button></li>' +
                 '</ul>' +
             '</div>' +
             '<ul class="causes">' +
@@ -279,6 +284,7 @@
                 '</ul>' +
                 '<ul class="actions">' +
                     '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
+                    '<li><button class="action">Rebaseline</button></li>' +
                 '</ul>' +
             '</div>' +
             '<ul class="causes">' +
@@ -321,6 +327,7 @@
                 '</ul>' +
                 '<ul class="actions">' +
                     '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
+                    '<li><button class="action">Rebaseline</button></li>' +
                 '</ul>' +
             '</div>' +
             '<ul class="causes"></ul>' +

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/notifications.css (94313 => 94314)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/notifications.css	2011-09-01 17:56:19 UTC (rev 94313)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/notifications.css	2011-09-01 17:57:09 UTC (rev 94314)
@@ -23,6 +23,11 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+/* FIXME: This should really be in actions.css. */
+ul.actions>li {
+    display: inline-block;
+}
+
 ol.notifications {
     list-style: none;
     padding: 0;

Modified: trunk/Tools/ChangeLog (94313 => 94314)


--- trunk/Tools/ChangeLog	2011-09-01 17:56:19 UTC (rev 94313)
+++ trunk/Tools/ChangeLog	2011-09-01 17:57:09 UTC (rev 94314)
@@ -1,5 +1,30 @@
 2011-09-01  Adam Barth  <[email protected]>
 
+        Add a "rebaseline" button to the garden-o-matic summary page
+        https://bugs.webkit.org/show_bug.cgi?id=67382
+
+        Reviewed by Dimitri Glazkov.
+
+        As much as we might wish folks to not rebaseline entire test groups at
+        once, the truth is that doing so is a common operation.  Adding a
+        button for this operation is likely to make folks happy.
+
+        This patch also cleans up a bunch of plumbing surrounding failureInfo
+        objects.
+
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js:
+
+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
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to