Title: [90884] trunk/Tools
Revision
90884
Author
[email protected]
Date
2011-07-12 21:05:51 -0700 (Tue, 12 Jul 2011)

Log Message

Improve garden-o-matic UI when the bots fail to report revision numbers
https://bugs.webkit.org/show_bug.cgi?id=64427

Reviewed by Dimitri Glazkov.

At least Win (dbg)(2) seems to fail to report the SVN revision number
in full_results.json.  This patch makes garden-o-matic more robust to
missing revision numbers.

* Scripts/webkitpy/tool/servers/data/gardeningserver/main.js:
* Scripts/webkitpy/tool/servers/data/gardeningserver/results.js:
* Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js:
* Scripts/webkitpy/tool/servers/data/gardeningserver/ui.js:
* Scripts/webkitpy/tool/servers/data/gardeningserver/ui_unittests.js:

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (90883 => 90884)


--- trunk/Tools/ChangeLog	2011-07-13 03:52:07 UTC (rev 90883)
+++ trunk/Tools/ChangeLog	2011-07-13 04:05:51 UTC (rev 90884)
@@ -1,5 +1,22 @@
 2011-07-12  Adam Barth  <[email protected]>
 
+        Improve garden-o-matic UI when the bots fail to report revision numbers
+        https://bugs.webkit.org/show_bug.cgi?id=64427
+
+        Reviewed by Dimitri Glazkov.
+
+        At least Win (dbg)(2) seems to fail to report the SVN revision number
+        in full_results.json.  This patch makes garden-o-matic more robust to
+        missing revision numbers.
+
+        * Scripts/webkitpy/tool/servers/data/gardeningserver/main.js:
+        * Scripts/webkitpy/tool/servers/data/gardeningserver/results.js:
+        * Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js:
+        * Scripts/webkitpy/tool/servers/data/gardeningserver/ui.js:
+        * Scripts/webkitpy/tool/servers/data/gardeningserver/ui_unittests.js:
+
+2011-07-12  Adam Barth  <[email protected]>
+
         Adjust garden-o-matic layout to use fewer lines
         https://bugs.webkit.org/show_bug.cgi?id=64422
 

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/main.js (90883 => 90884)


--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/main.js	2011-07-13 03:52:07 UTC (rev 90883)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/main.js	2011-07-13 04:05:51 UTC (rev 90884)
@@ -30,6 +30,8 @@
                 var builderNameList = base.keys(resultNodesByBuilder);
                 results.unifyRegressionRanges(builderNameList, testName, function(oldestFailingRevision, newestPassingRevision) {
                     $('.regression-range', testSummary).append(ui.summarizeRegressionRange(oldestFailingRevision, newestPassingRevision));
+                    if (!newestPassingRevision)
+                        return;
                     checkout.existsAtRevision(checkout.subversionURLForTest(testName), newestPassingRevision, function(testExistedBeforeFailure) {
                         $(testSummary).attr('data-new-test', !testExistedBeforeFailure);
                     });

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js (90883 => 90884)


--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js	2011-07-13 03:52:07 UTC (rev 90883)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js	2011-07-13 04:05:51 UTC (rev 90884)
@@ -227,6 +227,10 @@
     var newestPassingRevision = 0;
 
     walkHistory(builderName, testName, function(revision, resultNode) {
+        if (!revision) {
+            callback(oldestFailingRevision, newestPassingRevision);
+            return false;
+        }
         if (!resultNode) {
             newestPassingRevision = revision;
             callback(oldestFailingRevision, newestPassingRevision);
@@ -252,6 +256,9 @@
     mergedRange.newestPassingRevision = 0;
 
     $.each(regressionRanges, function(builderName, range) {
+        if (!range.oldestFailingRevision || !range.newestPassingRevision)
+            return
+
         if (!mergedRange.oldestFailingRevision)
             mergedRange.oldestFailingRevision = range.oldestFailingRevision;
         if (!mergedRange.newestPassingRevision)

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js (90883 => 90884)


--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js	2011-07-13 03:52:07 UTC (rev 90883)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js	2011-07-13 04:05:51 UTC (rev 90884)
@@ -254,6 +254,50 @@
     });
 });
 
+test("walkHistory (no revision)", 3, function() {
+    var simulator = new NetworkSimulator();
+
+    var keyMap = {
+        "vsfdsfdsafsdafasd": {
+            "tests": {
+                "userscripts": {
+                    "another-test.html": {
+                        "expected": "PASS",
+                        "actual": "TEXT"
+                    }
+                },
+            },
+            "revision": ""
+        },
+        "gavsavsrfgwaevwefawvae":{
+            "tests": {
+            },
+            "revision": ""
+        },
+    };
+
+    simulator.jsonpHook = function(url, callback) {
+        simulator.scheduleCallback(function() {
+            if (/dir=1/.test(url)) {
+                callback([
+                    { "key": "vsfdsfdsafsdafasd" },
+                    { "key": "gavsavsrfgwaevwefawvae" },
+                ]);
+            } else {
+                var key = url.match(/key=([^&]+)/)[1];
+                callback(keyMap[key]);
+            }
+        });
+    };
+
+    simulator.runTest(function() {
+        results.regressionRangeForFailure("Mock Builder", "userscripts/another-test.html", function(oldestFailingRevision, newestPassingRevision) {
+            equals(oldestFailingRevision, 0);
+            equals(newestPassingRevision, 0);
+        });
+    });
+});
+
 test("collectUnexpectedResults", 1, function() {
     var dictionaryOfResultNodes = {
         "foo": {

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui.js (90883 => 90884)


--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui.js	2011-07-13 03:52:07 UTC (rev 90883)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui.js	2011-07-13 04:05:51 UTC (rev 90884)
@@ -50,7 +50,7 @@
 ui.summarizeRegressionRange = function(oldestFailingRevision, newestPassingRevision)
 {
     if (!oldestFailingRevision || !newestPassingRevision)
-        return $();
+        return $('<div class="regression-range">Regression Range: Unknown</div>');
 
     var impliedFirstFailingRevision = newestPassingRevision + 1;
 

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui_unittests.js (90883 => 90884)


--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui_unittests.js	2011-07-13 03:52:07 UTC (rev 90883)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui_unittests.js	2011-07-13 04:05:51 UTC (rev 90884)
@@ -30,7 +30,11 @@
     ok(summaryHTML.indexOf('Mock Builder') != -1);
 });
 
-test("summarizeRegressionRange", 2, function() {
+test("summarizeRegressionRange", 3, function() {
+    var summaryWithMultipleRevisions = ui.summarizeRegressionRange(0, 0);
+    summaryWithMultipleRevisions.wrap('<wrapper></wrapper>');
+    equal(summaryWithMultipleRevisions.parent().html(), '<div class="regression-range">Regression Range: Unknown</div>');
+
     var summaryWithMultipleRevisions = ui.summarizeRegressionRange(90424, 90426);
     summaryWithMultipleRevisions.wrap('<wrapper></wrapper>');
     equal(summaryWithMultipleRevisions.parent().html(), '<div class="regression-range">Regression Range: <a href=""
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to