Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js (137779 => 137780)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js 2012-12-14 23:04:23 UTC (rev 137779)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js 2012-12-14 23:17:03 UTC (rev 137780)
@@ -30,23 +30,48 @@
var kCheckoutUnavailableMessage = 'Failed! Garden-o-matic needs a local server to modify your working copy. Please run "webkit-patch garden-o-matic" start the local server.';
// FIXME: Where should this function go?
-function rebaselineWithStatusUpdates(failureInfoList)
+function rebaselineWithStatusUpdates(failureInfoList, resultsByTest)
{
- // FIXME: If a test is a reftest, webkit-patch rebaseline-test should error out
- // and we should alert (modal dialog?) the user.
var statusView = new ui.StatusArea('Rebaseline');
var id = statusView.newId();
- var testNames = base.uniquifyArray(failureInfoList.map(function(failureInfo) { return failureInfo.testName; }));
- var testName = testNames.length == 1 ? testNames[0] : testNames.length + ' tests';
- statusView.addMessage(id, 'Performing rebaseline of ' + testName + '...');
+ var failuresToRebaseline = [];
+ var testNamesLogged = [];
+ failureInfoList.forEach(function(failureInfo) {
+ if (isAnyReftest(failureInfo.testName, resultsByTest)) {
+ if (testNamesLogged.indexOf(failureInfo.testName) == -1) {
+ statusView.addMessage(id, failureInfo.testName + ' is a ref test, skipping');
+ testNamesLogged.push(failureInfo.testName);
+ }
+ } else {
+ failuresToRebaseline.push(failureInfo);
+ if (testNamesLogged.indexOf(failureInfo.testName) == -1) {
+ statusView.addMessage(id, 'Rebaselining ' + failureInfo.testName + '...');
+ testNamesLogged.push(failureInfo.testName);
+ }
+ }
+ });
+
+ if (failuresToRebaseline.length) {
+ checkout.rebaseline(failuresToRebaseline, function() {
+ statusView.addFinalMessage(id, 'Rebaseline done! Please land with "webkit-patch land-cowhand".');
+ }, function(failureInfo) {
+ statusView.addMessage(id, failureInfo.testName + ' on ' + ui.displayNameForBuilder(failureInfo.builderName));
+ }, function() {
+ statusView.addFinalMessage(id, kCheckoutUnavailableMessage);
+ });
+ } else {
+ statusView.addFinalMessage(id, 'No non-reftests left to rebaseline!')
+ }
+}
- checkout.rebaseline(failureInfoList, function() {
- statusView.addFinalMessage(id, 'Rebaseline done! Please land with "webkit-patch land-cowhand".');
- }, function(failureInfo) {
- statusView.addMessage(id, failureInfo.testName + ' on ' + ui.displayNameForBuilder(failureInfo.builderName));
- }, function() {
- statusView.addFinalMessage(id, kCheckoutUnavailableMessage);
+// FIXME: This is duplicated from ui/results.js :(.
+function isAnyReftest(testName, resultsByTest)
+{
+ return Object.keys(resultsByTest[testName]).map(function(builder) {
+ return resultsByTest[testName][builder];
+ }).some(function(resultNode) {
+ return resultNode.reftest_type && resultNode.reftest_type.length;
});
}
@@ -98,7 +123,7 @@
},
onRebaseline: function()
{
- rebaselineWithStatusUpdates(this._failureInfoList());
+ rebaselineWithStatusUpdates(this._failureInfoList(), this._resultsByTest);
this._view.nextTest();
},
onUpdateExpectations: function()
@@ -206,7 +231,14 @@
},
onRebaseline: function(failures)
{
- rebaselineWithStatusUpdates(this._toFailureInfoList(failures));
+ var testNameList = failures.testNameList();
+ var failuresByTest = base.filterDictionary(
+ this._resultsFilter(this._model.resultsByBuilder),
+ function(key) {
+ return testNameList.indexOf(key) != -1;
+ });
+
+ rebaselineWithStatusUpdates(this._toFailureInfoList(failures), failuresByTest);
},
onUpdateExpectations: function(failures)
{
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js (137779 => 137780)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js 2012-12-14 23:04:23 UTC (rev 137779)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js 2012-12-14 23:17:03 UTC (rev 137780)
@@ -187,7 +187,7 @@
return Object.keys(resultsByTest[testName]).map(function(builder) {
return resultsByTest[testName][builder];
}).some(function(resultNode) {
- return resultNode.is_reftest || resultNode.is_mismatch_reftest
+ return resultNode.reftest_type && resultNode.reftest_type.length;
});
}
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results_unittests.js (137779 => 137780)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results_unittests.js 2012-12-14 23:04:23 UTC (rev 137779)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results_unittests.js 2012-12-14 23:17:03 UTC (rev 137780)
@@ -68,14 +68,14 @@
"Mock Builder": {
"expected": "PASS",
"actual": "IMAGE",
- "is_reftest": true
+ "reftest_type": ["=="]
}
},
"mismatch-reftest.html": {
"Mock Builder": {
"expected": "PASS",
"actual": "IMAGE",
- "is_mismatch_reftest": true
+ "reftest_type": ["!="]
}
}
};
Modified: trunk/Tools/ChangeLog (137779 => 137780)
--- trunk/Tools/ChangeLog 2012-12-14 23:04:23 UTC (rev 137779)
+++ trunk/Tools/ChangeLog 2012-12-14 23:17:03 UTC (rev 137780)
@@ -1,3 +1,27 @@
+2012-12-14 Dirk Pranke <[email protected]>
+
+ garden-o-matic doesn't know about reftests
+ https://bugs.webkit.org/show_bug.cgi?id=101976
+
+ Reviewed by Eric Seidel.
+
+ Attempt to make garden-o-matic properly aware of reftests again.
+
+ This is re-landing r137407 with a change to
+ rebaselineWithStatusUpdates() to actually pass the filtered
+ failureInofLost to checkout.rebaseline().
+
+ Unfortunately, the testing coverage for this whole module is almost
+ non-existent, and it's not obvious that there's a good way to
+ stub out checkout.rebaseline() to test that the right thing
+ happens. I verified the change manually.
+
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
+ (.):
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js:
+ (.):
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results_unittests.js:
+
2012-12-14 Ryosuke Niwa <[email protected]>
"Running 1 DumpRenderTree over X shards" is not a helpful output