Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html (92347 => 92348)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html 2011-08-04 04:38:01 UTC (rev 92347)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html 2011-08-04 04:38:32 UTC (rev 92348)
@@ -13,16 +13,13 @@
<div class="butterbar"><span class="status">Loading...</span></div>
<div class="infobar"><span class="status"></span></div>
<div class="actions">
- <button class="show-selected-failures">Show Selected Failures</button>
- <button class="rebaseline-selected">Rebaseline Selected</button>
- <button class="add-selected-expectations">Mark Selected as Expected</button>
- <button class="refresh">Refresh</button>
+ <button class="show-selected-failures">Show Selected Failures</button><button class="rebaseline-selected">Rebaseline Selected</button><button class="add-selected-expectations">Mark Selected as Expected</button><button class="refresh">Refresh</button>
</div>
<div class="recent-history"></div>
<div class="results-detail">
<div class="toolbar">
<div class="actions">
- <button class="rebaseline default">Add to Rebaseline Queue</button><button class="previous">◀</button><button class="next">▶</button><button class="dismiss">Close</button>
+ <button class="rebaseline default">Add to Rebaseline Queue</button><button class="update-expectation">Mark Failure as Expected</button><button class="previous">◀</button><button class="next">▶</button><button class="dismiss">Close</button>
</div>
<div class="status"></div>
<div class="clear"></div>
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js (92347 => 92348)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js 2011-08-04 04:38:01 UTC (rev 92347)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js 2011-08-04 04:38:32 UTC (rev 92348)
@@ -61,6 +61,8 @@
function rebaseline(failureInfoList)
{
+ if (!failureInfoList.length)
+ return;
displayOnButterbar('Rebaselining...');
checkout.rebaseline(failureInfoList, function() {
dismissButterbar();
@@ -69,12 +71,6 @@
});
}
-function updateExpectations(failureInfoList)
-{
- displayOnButterbar('Adding expectations...');
- checkout.updateExpectations(failureInfoList, dismissButterbar);
-}
-
function showResultsDetail(testName, builderName, failureTypeList)
{
var failureTypes = failureTypeList.join(' ');
@@ -113,15 +109,6 @@
});
}
-function executeQueuedRebaselines()
-{
- var failureInfoList = model.takeRebaselineQueue();
- if (!failureInfoList.length)
- return;
- // FIXME: Should we confirm with the use before executing the queue?
- rebaseline(failureInfoList);
-}
-
function hideResultsDetail()
{
$('.results-detail').fadeOut('fast', function() {
@@ -131,7 +118,10 @@
// but doing so helps the garbage collector free memory.
g_resultsDetailsIterator = null;
});
- executeQueuedRebaselines();
+ checkout.updateExpectations(model.takeExpectationUpdateQueue(), function() {
+ // FIXME: Should we confirm with the use before executing the queue?
+ rebaseline(model.takeRebaselineQueue());
+ });
}
function nextResultsDetail()
@@ -147,16 +137,25 @@
g_resultsDetailsIterator.callPrevious();
}
-function addToRebaselineQueue()
+function failureInfoFromResultsDetail()
{
var failureDetails = $('.failure-details', $(this).parents('.results-detail'));
+ return {
+ 'builderName': failureDetails.attr(config.kBuilderNameAttr),
+ 'testName': failureDetails.attr(config.kTestNameAttr),
+ 'failureTypeList': failureDetails.attr(config.kFailureTypesAttr).split(' '),
+ }
+}
- var builderName = failureDetails.attr(config.kBuilderNameAttr);
- var testName = failureDetails.attr(config.kTestNameAttr);
- var failureTypes = failureDetails.attr(config.kFailureTypesAttr);
- var failureTypeList = failureTypes.split(' ');
+function addToRebaselineQueue()
+{
+ model.queueForRebaseline(failureInfoFromResultsDetail());
+ nextResultsDetail();
+}
- model.queueForRebaseline(builderName, testName, failureTypeList);
+function addToExpectationUpdateQueue()
+{
+ model.queueForExpectationUpdate(failureInfoFromResultsDetail());
nextResultsDetail();
}
@@ -193,7 +192,7 @@
function updateExpectationsForSelected()
{
- updateExpectations(selectedFailures());
+ checkout.updateExpectations(selectedFailures(), $.noop);
}
function showSelectedFailures()
@@ -282,6 +281,7 @@
$('.results-detail .actions .next').live('click', nextResultsDetail);
$('.results-detail .actions .previous').live('click', previousResultsDetail);
$('.results-detail .actions .rebaseline').live('click', addToRebaselineQueue);
+$('.results-detail .actions .update-expectation').live('click', addToExpectationUpdateQueue);
$('.results-detail .actions .dismiss').live('click', hideResultsDetail);
$(document).ready(function() {
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js (92347 => 92348)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js 2011-08-04 04:38:01 UTC (rev 92347)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js 2011-08-04 04:38:32 UTC (rev 92348)
@@ -6,7 +6,8 @@
model.state = {};
model.state.failureAnalysisByTest = {};
-model.state.rebaselineQueue = []
+model.state.rebaselineQueue = [];
+model.state.expectationsUpdateQueue = [];
function findAndMarkRevertedRevisions(commitDataList)
{
@@ -21,13 +22,9 @@
});
}
-model.queueForRebaseline = function(builderName, testName, failureTypeList)
+model.queueForRebaseline = function(failureInfo)
{
- model.state.rebaselineQueue.push({
- 'builderName': builderName,
- 'testName': testName,
- 'failureTypeList': failureTypeList,
- });
+ model.state.rebaselineQueue.push(failureInfo);
};
model.takeRebaselineQueue = function()
@@ -37,6 +34,18 @@
return queue;
};
+model.queueForExpectationUpdate = function(failureInfo)
+{
+ model.state.expectationsUpdateQueue.push(failureInfo);
+};
+
+model.takeExpectationUpdateQueue = function()
+{
+ var queue = model.state.expectationsUpdateQueue;
+ model.state.expectationsUpdateQueue = [];
+ return queue;
+};
+
model.updateRecentCommits = function(callback)
{
trac.recentCommitData('trunk', kCommitLogLength, function(commitDataList) {
Modified: trunk/Tools/ChangeLog (92347 => 92348)
--- trunk/Tools/ChangeLog 2011-08-04 04:38:01 UTC (rev 92347)
+++ trunk/Tools/ChangeLog 2011-08-04 04:38:32 UTC (rev 92348)
@@ -1,5 +1,18 @@
2011-08-03 Adam Barth <aba...@webkit.org>
+ garden-o-matic should be able to update expecations from the details pane
+ https://bugs.webkit.org/show_bug.cgi?id=65648
+
+ Reviewed by Dimitri Glazkov.
+
+ The new button queues up the updates, which get executed all at once.
+
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js:
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js:
+
+2011-08-03 Adam Barth <aba...@webkit.org>
+
Add UI to garden-o-matic for updating expectations
https://bugs.webkit.org/show_bug.cgi?id=65644