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=""