Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js (137406 => 137407)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js 2012-12-12 03:12:23 UTC (rev 137406)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js 2012-12-12 03:38:31 UTC (rev 137407)
@@ -30,26 +30,45 @@
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 + '...');
- 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);
+ var failuresToRebaseline = [];
+ testNames.forEach(function(testName) {
+ if (isAnyReftest(testName, resultsByTest))
+ statusView.addMessage(id, testName + ' is a ref test, skipping');
+ else {
+ failuresToRebaseline.push(testName);
+ statusView.addMessage(id, 'Rebaselining ' + 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 tests left to rebaseline!')
}
+// 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;
+ });
+}
+
// FIXME: Where should this function go?
function updateExpectationsWithStatusUpdates(failureInfoList)
{
@@ -98,7 +117,7 @@
},
onRebaseline: function()
{
- rebaselineWithStatusUpdates(this._failureInfoList());
+ rebaselineWithStatusUpdates(this._failureInfoList(), this._resultsByTest);
this._view.nextTest();
},
onUpdateExpectations: function()
@@ -206,7 +225,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 (137406 => 137407)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js 2012-12-12 03:12:23 UTC (rev 137406)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js 2012-12-12 03:38:31 UTC (rev 137407)
@@ -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 (137406 => 137407)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results_unittests.js 2012-12-12 03:12:23 UTC (rev 137406)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results_unittests.js 2012-12-12 03:38:31 UTC (rev 137407)
@@ -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 (137406 => 137407)
--- trunk/Tools/ChangeLog 2012-12-12 03:12:23 UTC (rev 137406)
+++ trunk/Tools/ChangeLog 2012-12-12 03:38:31 UTC (rev 137407)
@@ -1,5 +1,31 @@
2012-12-11 Dirk Pranke <[email protected]>
+ garden-o-matic doesn't know about reftests
+ https://bugs.webkit.org/show_bug.cgi?id=101976
+
+ Reviewed by Ojan Vafai.
+
+ This is a first attempt at fixing this, sort of a "stop-the-bleeding"
+ fix. We will now look at the list of tests we're asked to rebaseline,
+ and log which ones are reftests into the status area, and rebaseline
+ the rest.
+
+ Longer-term, we should display feedback in the results area based on
+ which tests we're looking at. If the test list contains no reftests,
+ we should behave as today; if the list is all reftest, we should
+ probably disable the button, and if the list is a mix, we should
+ probably display an alert next to the button or something. It would
+ also be nice to annotate which tests were reftests, maybe with a
+ "(reftest)" next to the test name or something.
+
+ * 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-11 Dirk Pranke <[email protected]>
+
REGRESSION(r133380): new tests without expected file reported as failing tests on the bots
https://bugs.webkit.org/show_bug.cgi?id=101469