| Index: Tools/GardeningServer/scripts/model.js
|
| diff --git a/Tools/GardeningServer/scripts/model.js b/Tools/GardeningServer/scripts/model.js
|
| index 2a85ce3985bc0b627b6238b3ddaa896b14f477ab..2bc3b89d6cbabe830ce4ddcc6ac1dc6f5af18835 100644
|
| --- a/Tools/GardeningServer/scripts/model.js
|
| +++ b/Tools/GardeningServer/scripts/model.js
|
| @@ -99,13 +99,12 @@ model.takeExpectationUpdateQueue = function()
|
|
|
| var g_commitIndex = {};
|
|
|
| -model.updateRecentCommits = function(callback)
|
| +model.updateRecentCommits = function()
|
| {
|
| - trac.recentCommitData('trunk', kCommitLogLength, function(commitDataList) {
|
| + return trac.recentCommitData('trunk', kCommitLogLength).then(function(commitDataList) {
|
| model.state.recentCommits = commitDataList;
|
| updateCommitIndex();
|
| findAndMarkRevertedRevisions(model.state.recentCommits);
|
| - callback();
|
| });
|
| };
|
|
|
| @@ -141,7 +140,7 @@ model.buildersInFlightForRevision = function(revision)
|
| model.latestRevision = function()
|
| {
|
| return model.state.recentCommits[0].revision;
|
| -}
|
| +};
|
|
|
| model.latestRevisionWithNoBuildersInFlight = function()
|
| {
|
| @@ -165,15 +164,15 @@ model.latestRevisionByBuilder = function()
|
| return revision;
|
| }
|
|
|
| -model.updateResultsByBuilder = function(callback)
|
| +model.updateResultsByBuilder = function()
|
| {
|
| - results.fetchResultsByBuilder(Object.keys(config.builders), function(resultsByBuilder) {
|
| + return results.fetchResultsByBuilder(Object.keys(config.builders)).then(function(resultsByBuilder) {
|
| model.state.resultsByBuilder = resultsByBuilder;
|
| - callback();
|
| });
|
| };
|
|
|
| -model.analyzeUnexpectedFailures = function(callback, completionCallback)
|
| +// failureCallback is called multiple times: once for each failure
|
| +model.analyzeUnexpectedFailures = function(failureCallback)
|
| {
|
| var unexpectedFailures = results.unexpectedFailuresByTest(model.state.resultsByBuilder);
|
|
|
| @@ -182,10 +181,12 @@ model.analyzeUnexpectedFailures = function(callback, completionCallback)
|
| delete model.state.failureAnalysisByTest[testName];
|
| });
|
|
|
| - var tracker = new base.RequestTracker(Object.keys(unexpectedFailures).length, completionCallback);
|
| + var failurePromises = [];
|
| $.each(unexpectedFailures, function(testName, resultNodesByBuilder) {
|
| var builderNameList = Object.keys(resultNodesByBuilder);
|
| - results.unifyRegressionRanges(builderNameList, testName, function(oldestFailingRevision, newestPassingRevision) {
|
| + failurePromises.push(results.unifyRegressionRanges(builderNameList, testName).then(function(result) {
|
| + var oldestFailingRevision = result[0];
|
| + var newestPassingRevision = result[1];
|
| var failureAnalysis = {
|
| 'testName': testName,
|
| 'resultNodesByBuilder': resultNodesByBuilder,
|
| @@ -204,11 +205,11 @@ model.analyzeUnexpectedFailures = function(callback, completionCallback)
|
| }
|
|
|
| model.state.failureAnalysisByTest[testName] = failureAnalysis;
|
| -
|
| - callback(failureAnalysis);
|
| - tracker.requestComplete();
|
| - });
|
| +
|
| + failureCallback(failureAnalysis);
|
| + }));
|
| });
|
| + return Promise.all(failurePromises);
|
| };
|
|
|
| model.unexpectedFailureInfoForTestName = function(testName)
|
| @@ -220,7 +221,8 @@ model.unexpectedFailureInfoForTestName = function(testName)
|
| });
|
| };
|
|
|
| -model.analyzeexpectedFailures = function(callback)
|
| +// failureCallback is called multiple times: once for each failure
|
| +model.analyzeexpectedFailures = function(failureCallback)
|
| {
|
| var expectedFailures = results.expectedFailuresByTest(model.state.resultsByBuilder);
|
| $.each(expectedFailures, function(testName, resultNodesByBuilder) {
|
| @@ -232,7 +234,7 @@ model.analyzeexpectedFailures = function(callback)
|
| // FIXME: Consider looking at the history to see how long this test
|
| // has been failing.
|
|
|
| - callback(failureAnalysis);
|
| + failureCallback(failureAnalysis);
|
| });
|
| };
|
|
|
|
|