Diff
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base.js (93015 => 93016)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base.js 2011-08-13 07:00:48 UTC (rev 93015)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base.js 2011-08-13 15:39:03 UTC (rev 93016)
@@ -111,14 +111,21 @@
this._requestsInFlight = requestsInFlight;
this._callback = callback;
this._args = args || [];
+ this._tryCallback();
};
-base.RequestTracker.prototype.requestComplete = function()
-{
- --this._requestsInFlight;
- if (!this._requestsInFlight)
- this._callback.apply(null, this._args);
-};
+base.RequestTracker.prototype = {
+ _tryCallback: function()
+ {
+ if (!this._requestsInFlight && this._callback)
+ this._callback.apply(null, this._args);
+ },
+ requestComplete: function()
+ {
+ --this._requestsInFlight;
+ this._tryCallback();
+ }
+}
base.callInParallel = function(functionList, callback)
{
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base_unittests.js (93015 => 93016)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base_unittests.js 2011-08-13 07:00:48 UTC (rev 93015)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base_unittests.js 2011-08-13 15:39:03 UTC (rev 93016)
@@ -113,7 +113,7 @@
})
});
-test("RequestTracker", 3, function() {
+test("RequestTracker", 5, function() {
var ready = false;
var tracker = new base.RequestTracker(1, function() {
ok(ready);
@@ -132,9 +132,14 @@
ready = false;
tracker = new base.RequestTracker(0, function() {
- ok(false);
+ ok(true);
});
tracker.requestComplete();
+
+ tracker = new base.RequestTracker(0);
+ tracker.requestComplete();
+ // Should not barf.
+ ok(true);
});
test("CallbackIterator", 22, function() {
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js (93015 => 93016)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js 2011-08-13 07:00:48 UTC (rev 93015)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js 2011-08-13 15:39:03 UTC (rev 93016)
@@ -287,8 +287,7 @@
base.callInParallel([model.updateRecentCommits, model.updateResultsByBuilder], function() {
showRecentCommits();
showBuilderProgress();
- model.analyzeUnexpectedFailures(showUnexpectedFailure);
- dismissButterbar();
+ model.analyzeUnexpectedFailures(showUnexpectedFailure, dismissButterbar);
checkForLocalServer();
});
}
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js (93015 => 93016)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js 2011-08-13 07:00:48 UTC (rev 93015)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js 2011-08-13 15:39:03 UTC (rev 93016)
@@ -114,7 +114,7 @@
});
};
-model.analyzeUnexpectedFailures = function(callback)
+model.analyzeUnexpectedFailures = function(callback, completionCallback)
{
var unexpectedFailures = results.unexpectedFailuresByTest(model.state.resultsByBuilder);
@@ -123,6 +123,7 @@
delete model.state.failureAnalysisByTest[testName];
});
+ var tracker = new base.RequestTracker(Object.keys(unexpectedFailures).length, completionCallback);
$.each(unexpectedFailures, function(testName, resultNodesByBuilder) {
var builderNameList = base.keys(resultNodesByBuilder);
results.unifyRegressionRanges(builderNameList, testName, function(oldestFailingRevision, newestPassingRevision) {
@@ -145,6 +146,7 @@
model.state.failureAnalysisByTest[testName] = failureAnalysis;
callback(failureAnalysis);
+ tracker.requestComplete();
});
});
};
Modified: trunk/Tools/ChangeLog (93015 => 93016)
--- trunk/Tools/ChangeLog 2011-08-13 07:00:48 UTC (rev 93015)
+++ trunk/Tools/ChangeLog 2011-08-13 15:39:03 UTC (rev 93016)
@@ -1,3 +1,19 @@
+2011-08-13 Dimitri Glazkov <[email protected]>
+
+ garden-o-matic's analyzeUnexpectedFailures needs a completion callback.
+ https://bugs.webkit.org/show_bug.cgi?id=66166
+
+ Also changed base.RequestTracker to:
+ a) fire callback immediately if requestsInFlight is 0;
+ b) not barf if callback is not supplied.
+
+ Reviewed by Adam Barth.
+
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js: Started using completion callback.
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js: Added completion callback.
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base.js: Changed RequestTracker.
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base_unittest.js: Added unit tests.
+
2011-08-12 Mark Rowe <[email protected]>
Be more forward-looking in the choice of compiler.