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