Title: [93016] trunk/Tools
Revision
93016
Author
[email protected]
Date
2011-08-13 08:39:03 -0700 (Sat, 13 Aug 2011)

Log Message

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.

Modified Paths

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.
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to