Changeset 95067 in webkit


Ignore:
Timestamp:
Sep 13, 2011 6:21:52 PM (13 years ago)
Author:
abarth@webkit.org
Message:

garden-o-matic should be able to mark failures as expected
https://bugs.webkit.org/show_bug.cgi?id=68027

Reviewed by Dimitri Glazkov.

All the back-end infrastructure exists for this operation. This patch
just adds some UI to the front-end and wires that UI up to the back
end. This exact UI will likely need some more polish, but this should
be a reasonable first cut.

  • 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:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js:
Location:
trunk/Tools
Files:
6 edited

Legend:

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

    r95066 r95067  
    3232{
    3333    var statusView = new ui.MessageBox(
    34         'Rebaseline status',
     34        'Rebaseline',
    3535        'Performing rebaseline...');
    3636
     
    4545}
    4646
     47// FIXME: Where should this function go?
     48// FIXME: This should share more code with rebaselineWithStatusUpdates.
     49function updateExpectationsWithStatusUpdates(failureInfoList)
     50{
     51    var statusView = new ui.MessageBox(
     52        'Expectations Update',
     53        'Updating expectations...');
     54
     55    checkout.updateExpectations(failureInfoList, function() {
     56        statusView.addMessage('Expectations update done! Please land with "webkit-patch land-cowboy".');
     57        statusView.addActionList(new ui.actions.List([new ui.actions.Close()]));
     58        $(statusView).bind('close', statusView.close.bind(statusView));
     59    });
     60}
     61
    4762controllers.ResultsDetails = base.extends(Object, {
    4863    init: function(view, resultsByTest)
     
    5570        $(this._view).bind('previous', this.onPrevious.bind(this));
    5671        $(this._view).bind('rebaseline', this.onRebaseline.bind(this));
     72        $(this._view).bind('updateexpectations', this.onUpdateExpectations.bind(this));
    5773    },
    5874    onNext: function()
     
    6480        this._view.previousResult();
    6581    },
    66     onRebaseline: function()
     82    _failureInfoList: function()
    6783    {
    6884        var testName = this._view.currentTestName();
    69         var failureInfoList = Object.keys(this._resultsByTest[testName]).map(function(builderName) {
     85        return Object.keys(this._resultsByTest[testName]).map(function(builderName) {
    7086            return {
    7187                'testName': testName,
    7288                'builderName': builderName
    73             }
    74         });
    75         rebaselineWithStatusUpdates(failureInfoList);
     89            };
     90        });
     91    },
     92    onRebaseline: function()
     93    {
     94        rebaselineWithStatusUpdates(this._failureInfoList());
     95    },
     96    onUpdateExpectations: function()
     97    {
     98        updateExpectationsWithStatusUpdates(this._failureInfoList());
    7699    }
    77100});
     
    100123                this.onRebaseline(failure);
    101124            }.bind(this));
     125            $(failure).bind('updateexpectations', function() {
     126                this.onUpdateExpectations(failure);
     127            }.bind(this));
    102128        }
    103129        failure.addFailureAnalysis(failureAnalysis);
     
    131157        onebar.select('results');
    132158    },
     159    _toFailureInfoList: function(failures)
     160    {
     161        return base.flattenArray(failures.testNameList().map(model.unexpectedFailureInfoForTestName));
     162    },
    133163    onRebaseline: function(failures)
    134164    {
    135         var failureInfoList = base.flattenArray(failures.testNameList().map(model.unexpectedFailureInfoForTestName));
    136         rebaselineWithStatusUpdates(failureInfoList);
     165        rebaselineWithStatusUpdates(this._toFailureInfoList(failures));
     166    },
     167    onUpdateExpectations: function(failures)
     168    {
     169        updateExpectationsWithStatusUpdates(this._toFailureInfoList(failures));
    137170    }
    138171});
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions.js

    r95066 r95067  
    8484});
    8585
     86// FIXME: Rename all the code to match the user-visible name.
     87ui.actions.UpdateExpectations = base.extends(Action, {
     88    init: function() {
     89        this.textContent = 'Mark as Expected';
     90        this._eventName = 'updateexpectations';
     91    }
     92});
     93
    8694ui.actions.Next = base.extends(Action, {
    8795    init: function() {
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js

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

    r94540 r95067  
    116116                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
    117117                    '<li><button class="action">Rebaseline</button></li>' +
     118                    '<li><button class="action">Mark as Expected</button></li>' +
    118119                '</ul>' +
    119120            '</div>' +
     
    138139                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
    139140                    '<li><button class="action">Rebaseline</button></li>' +
     141                    '<li><button class="action">Mark as Expected</button></li>' +
    140142                '</ul>' +
    141143            '</div>' +
     
    161163                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
    162164                    '<li><button class="action">Rebaseline</button></li>' +
     165                    '<li><button class="action">Mark as Expected</button></li>' +
    163166                '</ul>' +
    164167            '</div>' +
     
    186189                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
    187190                    '<li><button class="action">Rebaseline</button></li>' +
     191                    '<li><button class="action">Mark as Expected</button></li>' +
    188192                '</ul>' +
    189193            '</div>' +
     
    229233                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
    230234                    '<li><button class="action">Rebaseline</button></li>' +
     235                    '<li><button class="action">Mark as Expected</button></li>' +
    231236                '</ul>' +
    232237            '</div>' +
     
    276281                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
    277282                    '<li><button class="action">Rebaseline</button></li>' +
     283                    '<li><button class="action">Mark as Expected</button></li>' +
    278284                '</ul>' +
    279285            '</div>' +
     
    319325                    '<li><button class="action default" title="Examine these failures in detail.">Examine</button></li>' +
    320326                    '<li><button class="action">Rebaseline</button></li>' +
     327                    '<li><button class="action">Mark as Expected</button></li>' +
    321328                '</ul>' +
    322329            '</div>' +
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js

    r94722 r95067  
    176176            var header = document.createElement('h3');
    177177            $(header).append(new ui.actions.List([
    178                 new ui.actions.Rebaseline().makeDefault()
     178                new ui.actions.Rebaseline().makeDefault(),
     179                new ui.actions.UpdateExpectations(),
    179180            ])).append(link);
    180181            this.appendChild(header);
  • trunk/Tools/ChangeLog

    r95066 r95067  
     12011-09-13  Adam Barth  <abarth@webkit.org>
     2
     3        garden-o-matic should be able to mark failures as expected
     4        https://bugs.webkit.org/show_bug.cgi?id=68027
     5
     6        Reviewed by Dimitri Glazkov.
     7
     8        All the back-end infrastructure exists for this operation.  This patch
     9        just adds some UI to the front-end and wires that UI up to the back
     10        end.  This exact UI will likely need some more polish, but this should
     11        be a reasonable first cut.
     12
     13        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
     14        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions.js:
     15        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js:
     16        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js:
     17        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js:
     18
    1192011-09-13  Adam Barth  <abarth@webkit.org>
    220
Note: See TracChangeset for help on using the changeset viewer.