Skip to content

Commit 41eaf82

Browse files
author
Adam Barth
committed
garden-o-matic's results.js should use RequestTracker
https://bugs.webkit.org/show_bug.cgi?id=89257 Reviewed by Dimitri Glazkov. We wrote results.js before we recognized the RequestTracker pattern. This patch replaces the manual implementations of RequestTracker with the real deal. * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js: Canonical link: https://commits.webkit.org/107132@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@120520 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent fa907ea commit 41eaf82

2 files changed

Lines changed: 37 additions & 39 deletions

File tree

  • Tools

Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js

Lines changed: 24 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -444,44 +444,39 @@ function mergeRegressionRanges(regressionRanges)
444444

445445
results.unifyRegressionRanges = function(builderNameList, testName, callback)
446446
{
447-
var queriesInFlight = builderNameList.length;
448-
if (!queriesInFlight)
449-
callback(0, 0);
450-
451447
var regressionRanges = {};
448+
449+
var tracker = new base.RequestTracker(builderNameList.length, function() {
450+
var mergedRange = mergeRegressionRanges(regressionRanges);
451+
callback(mergedRange.oldestFailingRevision, mergedRange.newestPassingRevision);
452+
});
453+
452454
$.each(builderNameList, function(index, builderName) {
453455
results.regressionRangeForFailure(builderName, testName, function(oldestFailingRevision, newestPassingRevision) {
454456
var range = {};
455457
range.oldestFailingRevision = oldestFailingRevision;
456458
range.newestPassingRevision = newestPassingRevision;
457459
regressionRanges[builderName] = range;
458-
459-
--queriesInFlight;
460-
if (!queriesInFlight) {
461-
var mergedRange = mergeRegressionRanges(regressionRanges);
462-
callback(mergedRange.oldestFailingRevision, mergedRange.newestPassingRevision);
463-
}
460+
tracker.requestComplete();
464461
});
465462
});
466463
};
467464

468465
results.countFailureOccurances = function(builderNameList, testName, callback)
469466
{
470-
var queriesInFlight = builderNameList.length;
471-
if (!queriesInFlight)
472-
callback(0);
473-
474467
var failureCount = 0;
468+
469+
var tracker = new base.RequestTracker(builderNameList.length, function() {
470+
callback(failureCount);
471+
});
472+
475473
$.each(builderNameList, function(index, builderName) {
476474
walkHistory(builderName, testName, function(revision, resultNode) {
477475
if (isUnexpectedFailure(resultNode)) {
478476
++failureCount;
479477
return true;
480478
}
481-
482-
--queriesInFlight;
483-
if (!queriesInFlight)
484-
callback(failureCount);
479+
tracker.requestComplete();
485480
return false;
486481
});
487482
});
@@ -538,31 +533,21 @@ results.fetchResultsURLs = function(failureInfo, callback)
538533
{
539534
var stem = resultsDirectoryURL(failureInfo.builderName);
540535
var testNameStem = base.trimExtension(failureInfo.testName);
541-
542536
var suffixList = possibleSuffixListFor(failureInfo.failureTypeList);
543-
544537
var resultURLs = [];
545-
var requestsInFlight = suffixList.length;
546-
547-
if (!requestsInFlight) {
548-
callback([]);
549-
return;
550-
}
551-
552-
function checkComplete()
553-
{
554-
if (--requestsInFlight == 0)
555-
callback(sortResultURLsBySuffix(resultURLs));
556-
}
557-
538+
var tracker = new base.RequestTracker(suffixList.length, function() {
539+
callback(sortResultURLsBySuffix(resultURLs));
540+
});
558541
$.each(suffixList, function(index, suffix) {
559542
var url = stem + testNameStem + suffix;
560543
net.probe(url, {
561544
success: function() {
562545
resultURLs.push(url);
563-
checkComplete();
546+
tracker.requestComplete();
547+
},
548+
error: function() {
549+
tracker.requestComplete();
564550
},
565-
error: checkComplete,
566551
});
567552
});
568553
};
@@ -575,13 +560,13 @@ results.fetchResultsForBuilder = function(builderName, callback)
575560
results.fetchResultsByBuilder = function(builderNameList, callback)
576561
{
577562
var resultsByBuilder = {}
578-
var requestsInFlight = builderNameList.length;
563+
var tracker = new base.RequestTracker(builderNameList.length, function() {
564+
callback(resultsByBuilder);
565+
});
579566
$.each(builderNameList, function(index, builderName) {
580567
results.fetchResultsForBuilder(builderName, function(resultsTree) {
581568
resultsByBuilder[builderName] = resultsTree;
582-
--requestsInFlight;
583-
if (!requestsInFlight)
584-
callback(resultsByBuilder);
569+
tracker.requestComplete();
585570
});
586571
});
587572
};

Tools/ChangeLog

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
2012-06-15 Adam Barth <abarth@webkit.org>
2+
3+
garden-o-matic's results.js should use RequestTracker
4+
https://bugs.webkit.org/show_bug.cgi?id=89257
5+
6+
Reviewed by Dimitri Glazkov.
7+
8+
We wrote results.js before we recognized the RequestTracker pattern.
9+
This patch replaces the manual implementations of RequestTracker with
10+
the real deal.
11+
12+
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js:
13+
114
2012-06-15 Darin Adler <darin@apple.com>
215

316
* Scripts/webkitpy/bindings: Added property svn:ignore.

0 commit comments

Comments
 (0)