Diff
Modified: trunk/Tools/ChangeLog (90771 => 90772)
--- trunk/Tools/ChangeLog 2011-07-11 18:54:13 UTC (rev 90771)
+++ trunk/Tools/ChangeLog 2011-07-11 18:58:39 UTC (rev 90772)
@@ -1,5 +1,21 @@
2011-07-11 Adam Barth <aba...@webkit.org>
+ Add some basic UI for showing regression ranges
+ https://bugs.webkit.org/show_bug.cgi?id=64243
+
+ Reviewed by Eric Seidel.
+
+ This UI is all temporary. It exists mostly just to have some buttons
+ to click to exercise the code.
+
+ * 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-11 Adam Barth <aba...@webkit.org>
+
garden-o-matic should be able to determine which revisions caused a given failure
https://bugs.webkit.org/show_bug.cgi?id=64189
Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/main.js (90771 => 90772)
--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/main.js 2011-07-11 18:54:13 UTC (rev 90771)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/main.js 2011-07-11 18:58:39 UTC (rev 90772)
@@ -29,9 +29,10 @@
setIconState($('.failures').length);
}
-function expandResults()
+function showResults()
{
- var resultsSummary = $(this);
+ // FIXME: This is fragile.
+ var resultsSummary = $(this).parent().parent().parent();
var testName = $('.testName', resultsSummary).text();
$('.builderName', resultsSummary).each(function() {
var builderName = $(this).text();
@@ -41,9 +42,25 @@
});
}
+function findRegressionRange()
+{
+ // FIXME: This is fragile!
+ var builderName = $('.builderName', $(this).parent()).text();
+ var testName = $('.testName', $(this).parent().parent().parent()).text();
+ results.regressionRangeForFailure(builderName, testName, function(oldestFailingRevision, newestPassingRevision) {
+ var tracURLs = [];
+ for (var i = newestPassingRevision + 1; i <= oldestFailingRevision; ++i) {
+ tracURLs.push('<a href="" + i + '">' + i + '</a>');
+ }
+ $('.butterbar .status').html('Regression range: ' + tracURLs.join(' '));
+ $('.butterbar').fadeIn();
+ });
+}
+
$('.hide').live('click', hide);
$('.quit').live('click', quit);
-$('.results-summary .test').live('click', expandResults);
+$('.show-results').live('click', showResults);
+$('.regression-range').live('click', findRegressionRange);
$(document).ready(function() {
fetchResults(function() {
Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js (90771 => 90772)
--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js 2011-07-11 18:54:13 UTC (rev 90771)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results.js 2011-07-11 18:58:39 UTC (rev 90772)
@@ -203,7 +203,10 @@
++self._indexOfNextKeyToFetch;
g_resultsCache.get(key, function(resultsTree) {
var resultNode = results.resultNodeForTest(resultsTree, self._testName);
- callback(resultsTree['revision'], resultNode);
+ var revision = parseInt(resultsTree['revision'])
+ if (isNaN(revision))
+ revision = 0;
+ callback(revision, resultNode);
});
};
Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js (90771 => 90772)
--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js 2011-07-11 18:54:13 UTC (rev 90771)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/results_unittests.js 2011-07-11 18:58:39 UTC (rev 90772)
@@ -138,7 +138,7 @@
}
test("regressionRangeForFailure", 3, function() {
- simulator = new NetworkSimulator();
+ var simulator = new NetworkSimulator();
var keyMap = {
"agx0ZXN0LXJlc3VsdHNyEAsSCFRlc3RGaWxlGLncUAw": {
@@ -212,8 +212,8 @@
};
simulator.runTest(function() {
results.regressionRangeForFailure("Mock Builder", "userscripts/another-test.html", function(oldestFailingRevision, newestPassingRevision) {
- equals(oldestFailingRevision, "90426");
- equals(newestPassingRevision, "90424");
+ equals(oldestFailingRevision, 90426);
+ equals(newestPassingRevision, 90424);
});
});
});
Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui.js (90771 => 90772)
--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui.js 2011-07-11 18:54:13 UTC (rev 90771)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui.js 2011-07-11 18:58:39 UTC (rev 90772)
@@ -10,7 +10,7 @@
block.append(testBlock);
$('.testName', testBlock).text(testName);
$.each(resultNodesByBuilder, function(builderName, resultNode) {
- var builderBlock = $('<div class="builder"><div class="builderName"></div><div class="actual"></div><div class="expected"></div></div>');
+ var builderBlock = $('<div class="builder"><div class="builderName"></div><div class="actual"></div><div class="expected"></div><button class="show-results">Show Results</button><button class="regression-range">Regression Range</button></div>');
$('.builders', testBlock).append(builderBlock);
$('.builderName', builderBlock).text(builderName);
$('.actual', builderBlock).text(resultNode.actual);
Modified: trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui_unittests.js (90771 => 90772)
--- trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui_unittests.js 2011-07-11 18:54:13 UTC (rev 90771)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/data/gardeningserver/ui_unittests.js 2011-07-11 18:58:39 UTC (rev 90772)
@@ -24,15 +24,18 @@
equal(resultsSummary.html(),
'<div class="test">' +
'<div class="testName">scrollbars/custom-scrollbar-with-incomplete-style.html</div>' +
- '<div class="builders">' +
- '<div class="builder"><div class="builderName">Mock Builder</div><div class="actual">CRASH</div><div class="expected">IMAGE</div></div>' +
- '<div class="builder"><div class="builderName">Mock Linux</div><div class="actual">CRASH</div><div class="expected">TEXT</div></div>' +
- '</div>' +
- '</div>' +
+ '<div class="builders">' +
+ '<div class="builder"><div class="builderName">Mock Builder</div><div class="actual">CRASH</div><div class="expected">IMAGE</div>' +
+ '<button class="show-results">Show Results</button><button class="regression-range">Regression Range</button></div>' +
+ '<div class="builder"><div class="builderName">Mock Linux</div><div class="actual">CRASH</div><div class="expected">TEXT</div>' +
+ '<button class="show-results">Show Results</button><button class="regression-range">Regression Range</button></div>' +
+ '</div>' +
+ '</div>' +
'<div class="test">' +
'<div class="testName">userscripts/another-test.html</div>' +
'<div class="builders">' +
- '<div class="builder"><div class="builderName">Mock Builder</div><div class="actual">TEXT</div><div class="expected">PASS</div></div>' +
+ '<div class="builder"><div class="builderName">Mock Builder</div><div class="actual">TEXT</div><div class="expected">PASS</div>' +
+ '<button class="show-results">Show Results</button><button class="regression-range">Regression Range</button></div>' +
'</div>' +
'</div>');
});