Title: [120520] trunk/Tools
Revision
120520
Author
[email protected]
Date
2012-06-15 20:35:44 -0700 (Fri, 15 Jun 2012)

Log Message

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:

Modified Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js (120519 => 120520)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js	2012-06-16 03:30:20 UTC (rev 120519)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js	2012-06-16 03:35:44 UTC (rev 120520)
@@ -444,44 +444,39 @@
 
 results.unifyRegressionRanges = function(builderNameList, testName, callback)
 {
-    var queriesInFlight = builderNameList.length;
-    if (!queriesInFlight)
-        callback(0, 0);
-
     var regressionRanges = {};
+
+    var tracker = new base.RequestTracker(builderNameList.length, function() {
+        var mergedRange = mergeRegressionRanges(regressionRanges);
+        callback(mergedRange.oldestFailingRevision, mergedRange.newestPassingRevision);
+    });
+
     $.each(builderNameList, function(index, builderName) {
         results.regressionRangeForFailure(builderName, testName, function(oldestFailingRevision, newestPassingRevision) {
             var range = {};
             range.oldestFailingRevision = oldestFailingRevision;
             range.newestPassingRevision = newestPassingRevision;
             regressionRanges[builderName] = range;
-
-            --queriesInFlight;
-            if (!queriesInFlight) {
-                var mergedRange = mergeRegressionRanges(regressionRanges);
-                callback(mergedRange.oldestFailingRevision, mergedRange.newestPassingRevision);
-            }
+            tracker.requestComplete();
         });
     });
 };
 
 results.countFailureOccurances = function(builderNameList, testName, callback)
 {
-    var queriesInFlight = builderNameList.length;
-    if (!queriesInFlight)
-        callback(0);
-
     var failureCount = 0;
+
+    var tracker = new base.RequestTracker(builderNameList.length, function() {
+        callback(failureCount);
+    });
+
     $.each(builderNameList, function(index, builderName) {
         walkHistory(builderName, testName, function(revision, resultNode) {
             if (isUnexpectedFailure(resultNode)) {
                 ++failureCount;
                 return true;
             }
-
-            --queriesInFlight;
-            if (!queriesInFlight)
-                callback(failureCount);
+            tracker.requestComplete();
             return false;
         });
     });
@@ -538,31 +533,21 @@
 {
     var stem = resultsDirectoryURL(failureInfo.builderName);
     var testNameStem = base.trimExtension(failureInfo.testName);
-
     var suffixList = possibleSuffixListFor(failureInfo.failureTypeList);
-
     var resultURLs = [];
-    var requestsInFlight = suffixList.length;
-
-    if (!requestsInFlight) {
-        callback([]);
-        return;
-    }
-
-    function checkComplete()
-    {
-        if (--requestsInFlight == 0)
-            callback(sortResultURLsBySuffix(resultURLs));
-    }
-
+    var tracker = new base.RequestTracker(suffixList.length, function() {
+        callback(sortResultURLsBySuffix(resultURLs));
+    });
     $.each(suffixList, function(index, suffix) {
         var url = "" + testNameStem + suffix;
         net.probe(url, {
             success: function() {
                 resultURLs.push(url);
-                checkComplete();
+                tracker.requestComplete();
             },
-            error: checkComplete,
+            error: function() {
+                tracker.requestComplete();
+            },
         });
     });
 };
@@ -575,13 +560,13 @@
 results.fetchResultsByBuilder = function(builderNameList, callback)
 {
     var resultsByBuilder = {}
-    var requestsInFlight = builderNameList.length;
+    var tracker = new base.RequestTracker(builderNameList.length, function() {
+        callback(resultsByBuilder);
+    });
     $.each(builderNameList, function(index, builderName) {
         results.fetchResultsForBuilder(builderName, function(resultsTree) {
             resultsByBuilder[builderName] = resultsTree;
-            --requestsInFlight;
-            if (!requestsInFlight)
-                callback(resultsByBuilder);
+            tracker.requestComplete();
         });
     });
 };

Modified: trunk/Tools/ChangeLog (120519 => 120520)


--- trunk/Tools/ChangeLog	2012-06-16 03:30:20 UTC (rev 120519)
+++ trunk/Tools/ChangeLog	2012-06-16 03:35:44 UTC (rev 120520)
@@ -1,3 +1,16 @@
+2012-06-15  Adam Barth  <[email protected]>
+
+        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:
+
 2012-06-15  Darin Adler  <[email protected]>
 
         * Scripts/webkitpy/bindings: Added property svn:ignore.
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to