Changeset 94314 in webkit


Ignore:
Timestamp:
Sep 1, 2011 10:57:09 AM (13 years ago)
Author:
abarth@webkit.org
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:
Location:
trunk/Tools
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js

    r94309 r94314  
    8484};
    8585
     86base.flattenArray = function(arrayOfArrays)
     87{
     88    return arrayOfArrays.reduce(function(left, right) {
     89        return left.concat(right); 
     90    });
     91};
     92
    8693base.filterDictionary = function(dictionary, predicate)
    8794{
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js

    r94309 r94314  
    7171    deepEqual(base.uniquifyArray(["a", "b", "b"]), ["a", "b"]);
    7272    deepEqual(base.uniquifyArray(["a", "b", "b", "a"]), ["a", "b"]);
     73});
     74
     75test("flattenArray", 5, function() {
     76    deepEqual(base.flattenArray([]), []);
     77    deepEqual(base.flattenArray([["a"]]), ["a"]);
     78    deepEqual(base.flattenArray([["a",] ["b"]]), ["a", "b"]);
     79    deepEqual(base.flattenArray([["a"], ["b", "c"]]), ["a", "b", "c"]);
     80    deepEqual(base.flattenArray(["a"], [], ["b"]]), ["a", "b"]);
    7381});
    7482
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js

    r93933 r94314  
    109109    callIfCheckoutAvailable(function() {
    110110        base.callInSequence(function(failureInfo, callback) {
    111             var extensionList = Array.prototype.concat.apply([], failureInfo.failureTypeList.map(results.failureTypeToExtensionList));
    112             base.callInSequence(function(extension, callback) {
    113                 net.post(config.kLocalServerURL + '/rebaseline?' + $.param({
    114                     'builder': failureInfo.builderName,
    115                     'test': failureInfo.testName,
    116                     'extension': extension
    117                 }), function() {
    118                     callback();
    119                 });
    120             }, extensionList, callback);
     111            net.post(config.kLocalServerURL + '/rebaseline?' + $.param({
     112                'builder': failureInfo.builderName,
     113                'test': failureInfo.testName,
     114            }), function() {
     115                callback();
     116            });
    121117        }, failureInfoList, function() {
    122118            var testNameList = base.uniquifyArray(failureInfoList.map(function(failureInfo) { return failureInfo.testName; }));
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js

    r93933 r94314  
    4141    {
    4242        equals(url, 'http://127.0.0.1:8127/updateexpectations');
    43         equals(data, '[{"builderName":"WebKit Linux","testName":"another/test.svg","failureTypeList":["IMAGE"]}]');
     43        equals(data, '[{"builderName":"WebKit Linux","testName":"another/test.svg"}]');
    4444        simulator.scheduleCallback(callback);
    4545    };
     
    4949            'builderName': 'WebKit Linux',
    5050            'testName': 'another/test.svg',
    51             'failureTypeList': ['IMAGE'],
    5251        }], function() {
    5352            ok(true);
     
    8584            'builderName': 'WebKit Linux',
    8685            'testName': 'another/test.svg',
    87             'failureTypeList': ['IMAGE'],
    8886        }, {
    8987            'builderName': 'WebKit Mac10.6',
    9088            'testName': 'another/test.svg',
    91             'failureTypeList': ['IMAGE+TEXT'],
    9289        }, {
    9390            'builderName': 'Webkit Vista',
    9491            'testName': 'fast/test.html',
    95             'failureTypeList': ['TEXT'],
    9692        }], function() {
    9793            ok(true);
     
    10096
    10197    deepEqual(requestedURLs, [
    102         "http://127.0.0.1:8127/rebaseline?builder=WebKit+Linux&test=another%2Ftest.svg&extension=png",
    103         "http://127.0.0.1:8127/rebaseline?builder=WebKit+Mac10.6&test=another%2Ftest.svg&extension=txt",
    104         "http://127.0.0.1:8127/rebaseline?builder=WebKit+Mac10.6&test=another%2Ftest.svg&extension=png",
    105         "http://127.0.0.1:8127/rebaseline?builder=Webkit+Vista&test=fast%2Ftest.html&extension=txt",
     98        "http://127.0.0.1:8127/rebaseline?builder=WebKit+Linux&test=another%2Ftest.svg",
     99        "http://127.0.0.1:8127/rebaseline?builder=WebKit+Mac10.6&test=another%2Ftest.svg",
     100        "http://127.0.0.1:8127/rebaseline?builder=Webkit+Vista&test=fast%2Ftest.html",
    106101        "http://127.0.0.1:8127/optimizebaselines?test=another%2Ftest.svg",
    107102        "http://127.0.0.1:8127/optimizebaselines?test=fast%2Ftest.html"
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js

    r94312 r94314  
    4444        $(this._view).bind('rebaseline', this.onRebaseline.bind(this));
    4545    },
    46     _failureInfoForTestAndBuilder: function(testName, builderName)
    47     {
    48         return {
    49             'testName': testName,
    50             'builderName': builderName,
    51             'failureTypeList': results.failureTypeList(this._resultsByTest[testName][builderName].actual)
    52         }
    53     },
    5446    showTest: function(testName)
    5547    {
    5648        var builderNameList = Object.keys(this._resultsByTest[testName]);
    5749        this._view.setBuilderList(builderNameList)
    58         this._view.showResults(this._failureInfoForTestAndBuilder(testName, builderNameList[0]));
     50        this._view.showResults(results.failureInfoForTestAndBuilder(this._resultsByTest, testName, builderNameList[0]));
    5951    },
    6052    onTestSelected: function()
     
    6355    },
    6456    onBuilderSelected: function() {
    65         this._view.showResults(this._failureInfoForTestAndBuilder(this._view.currentTestName(),
    66                                                                   this._view.currentBuilderName()));
     57        this._view.showResults(results.failureInfoForTestAndBuilder(this._resultsByTest, this._view.currentTestName(), this._view.currentBuilderName()));
    6758    },
    6859    onRebaseline: function() {
     
    10293                this.onExamine(failure);
    10394            }.bind(this));
     95            $(failure).bind('rebaseline', function() {
     96                this.onRebaseline(failure);
     97            }.bind(this));
    10498        }
    10599        failure.addFailureAnalysis(failureAnalysis);
     
    133127        $(resultsContainer).empty().append(resultsView);
    134128        onebar.select('results');
     129    },
     130    onRebaseline: function(failures)
     131    {
     132        failureInfoList = base.flattenArray(failures.testNameList().map(model.unexpectedFailureInfoForTestName));
     133        checkout.rebaseline(failureInfoList, function() {
     134            // FIXME: We should have a better dialog than this!
     135            alert('Rebaseline done! Please land with "webkit-patch land-cowboy".');
     136        });
    135137    },
    136138    onBlame: function(failure, commitData)
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js

    r93830 r94314  
    186186};
    187187
     188model.unexpectedFailureInfoForTestName = function(testName)
     189{
     190    var resultsByTest = results.unexpectedFailuresByTest(model.state.resultsByBuilder);
     191
     192    return Object.keys(resultsByTest[testName]).map(function(builderName) {
     193        return results.failureInfoForTestAndBuilder(resultsByTest, testName, builderName);
     194    });
     195};
     196
    188197model.analyzeUnexpectedSuccesses = function(callback)
    189198{
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js

    r93259 r94314  
    296296};
    297297
     298results.failureInfoForTestAndBuilder = function(resultsByTest, testName, builderName)
     299{
     300    return {
     301        'testName': testName,
     302        'builderName': builderName,
     303        'failureTypeList': results.failureTypeList(resultsByTest[testName][builderName].actual)
     304    }
     305};
     306
    298307results.collectUnexpectedResults = function(dictionaryOfResultNodes)
    299308{
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js

    r93259 r94314  
    104104            }
    105105        }
     106    });
     107});
     108
     109test("failureInfoForTestAndBuilder", 1, function() {
     110    var unexpectedFailuresByTest = results.unexpectedFailuresByTest({
     111        "Mock Builder": kExampleResultsJSON
     112    });
     113    var failureInfo = results.failureInfoForTestAndBuilder(unexpectedFailuresByTest, "userscripts/another-test.html", "Mock Builder");
     114    deepEqual(failureInfo, {
     115        "testName": "userscripts/another-test.html",
     116        "builderName": "Mock Builder",
     117        "failureTypeList": ["TEXT"],
    106118    });
    107119});
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js

    r94312 r94314  
    155155        this._problem.appendChild(new ui.actions.List([
    156156            new ui.actions.Examine().makeDefault(),
     157            new ui.actions.Rebaseline(),
    157158        ]));
    158159        this._testNameList = [];
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js

    r94312 r94314  
    125125                '<ul class="actions">' +
    126126                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
     127                    '<li><button class="action">Rebaseline</button></li>' +
    127128                '</ul>' +
    128129            '</div>' +
     
    146147                '<ul class="actions">' +
    147148                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
     149                    '<li><button class="action">Rebaseline</button></li>' +
    148150                '</ul>' +
    149151            '</div>' +
     
    168170                '<ul class="actions">' +
    169171                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
     172                    '<li><button class="action">Rebaseline</button></li>' +
    170173                '</ul>' +
    171174            '</div>' +
     
    192195                '<ul class="actions">' +
    193196                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
     197                    '<li><button class="action">Rebaseline</button></li>' +
    194198                '</ul>' +
    195199            '</div>' +
     
    234238                '<ul class="actions">' +
    235239                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
     240                    '<li><button class="action">Rebaseline</button></li>' +
    236241                '</ul>' +
    237242            '</div>' +
     
    280285                '<ul class="actions">' +
    281286                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
     287                    '<li><button class="action">Rebaseline</button></li>' +
    282288                '</ul>' +
    283289            '</div>' +
     
    322328                '<ul class="actions">' +
    323329                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
     330                    '<li><button class="action">Rebaseline</button></li>' +
    324331                '</ul>' +
    325332            '</div>' +
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/notifications.css

    r94311 r94314  
    2424 */
    2525
     26/* FIXME: This should really be in actions.css. */
     27ul.actions>li {
     28    display: inline-block;
     29}
     30
    2631ol.notifications {
    2732    list-style: none;
  • trunk/Tools/ChangeLog

    r94312 r94314  
     12011-09-01  Adam Barth  <abarth@webkit.org>
     2
     3        Add a "rebaseline" button to the garden-o-matic summary page
     4        https://bugs.webkit.org/show_bug.cgi?id=67382
     5
     6        Reviewed by Dimitri Glazkov.
     7
     8        As much as we might wish folks to not rebaseline entire test groups at
     9        once, the truth is that doing so is a common operation.  Adding a
     10        button for this operation is likely to make folks happy.
     11
     12        This patch also cleans up a bunch of plumbing surrounding failureInfo
     13        objects.
     14
     15        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js:
     16        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js:
     17        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js:
     18        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js:
     19        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
     20        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js:
     21        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js:
     22        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js:
     23        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js:
     24        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js:
     25
    1262011-09-01  Adam Barth  <abarth@webkit.org>
    227
Note: See TracChangeset for help on using the changeset viewer.