Diff
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js (94486 => 94487)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js 2011-09-03 08:27:38 UTC (rev 94486)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js 2011-09-03 08:29:32 UTC (rev 94487)
@@ -92,6 +92,17 @@
});
};
+base.values = function(dictionary)
+{
+ var result = [];
+
+ for (var key in dictionary) {
+ result.push(dictionary[key]);
+ }
+
+ return result;
+};
+
base.filterDictionary = function(dictionary, predicate)
{
var result = {};
@@ -104,6 +115,19 @@
return result;
};
+base.mapDictionary = function(dictionary, functor)
+{
+ var result = {};
+
+ for (var key in dictionary) {
+ var value = functor(dictionary[key]);
+ if (typeof value !== 'undefined')
+ result[key] = value;
+ }
+
+ return result;
+};
+
base.filterTree = function(tree, isLeaf, predicate)
{
var filteredTree = {};
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js (94486 => 94487)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js 2011-09-03 08:27:38 UTC (rev 94486)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js 2011-09-03 08:29:32 UTC (rev 94487)
@@ -80,6 +80,13 @@
deepEqual(base.flattenArray([["a"], [], ["b"]]), ["a", "b"]);
});
+test("values", 4, function() {
+ deepEqual(base.values({}), []);
+ deepEqual(base.values({a: 1}), [1]);
+ deepEqual(base.values({a: 1, b: 2}), [1, 2]);
+ deepEqual(base.values({a: 1, b: 2, c: 1}), [1, 2, 1]);
+});
+
test("callInParallel", 4, function() {
var expectedCall = [true, true, true];
var expectCompletionCallback = true;
@@ -185,7 +192,7 @@
var dictionary = {
'foo': 43,
'bar': 11
- }
+ };
deepEqual(base.filterDictionary(dictionary, function() { return true; }), {
"foo": 43,
"bar": 11
@@ -196,6 +203,24 @@
});
});
+test("mapDictionary", 3, function() {
+ deepEqual(base.mapDictionary({}, function(value) { return value - 10; }), {});
+ var dictionary = {
+ 'foo': 43,
+ 'bar': 11
+ };
+ deepEqual(base.mapDictionary(dictionary, function(value) { return value - 10; }), {
+ "foo": 33,
+ "bar": 1
+ });
+ deepEqual(base.mapDictionary(dictionary, function(value) {
+ if (value > 20)
+ return value - 20;
+ }), {
+ "foo": 23,
+ });
+});
+
test("filterTree", 2, function() {
var tree = {
'path': {
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js (94486 => 94487)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js 2011-09-03 08:27:38 UTC (rev 94486)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js 2011-09-03 08:29:32 UTC (rev 94487)
@@ -34,6 +34,7 @@
this._resultsByTest = resultsByTest;
this._view.setTestList(Object.keys(this._resultsByTest));
+ this._view.setResultsByTest(resultsByTest);
this._view.addAction(new ui.actions.Rebaseline().makeDefault());
this._view.addAction(new ui.actions.Previous());
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js (94486 => 94487)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js 2011-09-03 08:27:38 UTC (rev 94486)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js 2011-09-03 08:29:32 UTC (rev 94487)
@@ -223,6 +223,45 @@
}
});
+ui.results.ResultsSelector = base.extends('table', {
+ init: function()
+ {
+ this.className = 'results-selector';
+ },
+ setResultsByTest: function(resultsByTest)
+ {
+ var buildersByTest = base.mapDictionary(resultsByTest, Object.keys);
+
+ var testNameList = Object.keys(buildersByTest);
+ var builderNameList = base.uniquifyArray(base.flattenArray(base.values(buildersByTest)));
+ builderNameList.sort();
+
+ var titles = this.createTHead().insertRow();
+ // Note the reverse iteration because insertCell() inserts at the beginning of the row.
+ for (var i = builderNameList.length - 1; i >= 0; --i) {
+ titles.insertCell().textContent = builderNameList[i];
+ }
+ titles.insertCell(); // For the test names.
+
+ this._body = this.appendChild(document.createElement('tbody'));
+
+ testNameList.forEach(function(testName) {
+ row = this._body.insertRow();
+ for (var i = builderNameList.length - 1; i >= 0; --i) {
+ var cell = row.insertCell();
+ var builderName = builderNameList[i];
+ if (buildersByTest[testName].indexOf(builderName) != -1) {
+ cell.className = 'result';
+ cell.textContent = resultsByTest[testName][builderName].actual;
+ }
+ }
+ var cell = row.insertCell()
+ cell.className = 'test-name';
+ cell.textContent = testName;
+ }.bind(this));
+ },
+});
+
ui.results.View = base.extends('div', {
init: function(delegate)
{
@@ -231,10 +270,11 @@
this._testSelector = new ui.results.TestSelector();
this._builderSelector = new ui.results.BuilderSelector();
+ this._resultsSelector = new ui.results.ResultsSelector();
this._resultsDetails = new ui.results.ResultsDetails(delegate);
this._actionList = new ui.actions.List();
- $('.toolbar', this).append(this._testSelector).append(this._builderSelector).append(this._actionList);
+ $('.toolbar', this).append(this._testSelector).append(this._builderSelector).append(this._resultsSelector).append(this._actionList);
$('.content', this).append(this._resultsDetails);
},
addAction: function(action)
@@ -249,6 +289,10 @@
{
this._builderSelector.setBuilderList(buildNameList);
},
+ setResultsByTest: function(resultsByTest)
+ {
+ this._resultsSelector.setResultsByTest(resultsByTest);
+ },
currentTestName: function()
{
return this._testSelector.selectedItem();
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results_unittests.js (94486 => 94487)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results_unittests.js 2011-09-03 08:27:38 UTC (rev 94486)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results_unittests.js 2011-09-03 08:29:32 UTC (rev 94487)
@@ -66,6 +66,30 @@
});
equal(resultsView.currentTestName(), "scrollbars/custom-scrollbar-with-incomplete-style.html");
equal(resultsView.currentBuilderName(), "Mock Linux");
-})
+});
+test("ResultsSelector", 1, function() {
+ var resultsSelector = new ui.results.ResultsSelector();
+ resultsSelector.setResultsByTest(kExampleResultsByTest);
+ equal($(resultsSelector).wrap('<div>').parent().html(),
+ '<table class="results-selector">' +
+ '<thead>' +
+ '<tr><td></td><td>Mock Builder</td><td>Mock Linux</td></tr>' +
+ '</thead>' +
+ '<tbody>' +
+ '<tr>' +
+ '<td class="test-name">userscripts/another-test.html</td>' +
+ '<td class="result">TEXT</td>' +
+ '<td></td>' +
+ '</tr>' +
+ '<tr>' +
+ '<td class="test-name">scrollbars/custom-scrollbar-with-incomplete-style.html</td>' +
+ '<td class="result">CRASH</td>' +
+ '<td class="result">CRASH</td>' +
+ '</tr>' +
+ '</tbody>' +
+ '</table>');
+});
+
+
})();
Modified: trunk/Tools/ChangeLog (94486 => 94487)
--- trunk/Tools/ChangeLog 2011-09-03 08:27:38 UTC (rev 94486)
+++ trunk/Tools/ChangeLog 2011-09-03 08:29:32 UTC (rev 94487)
@@ -1,5 +1,24 @@
2011-09-03 Adam Barth <[email protected]>
+ garden-o-matic results view should have a better results selector
+ https://bugs.webkit.org/show_bug.cgi?id=67542
+
+ Reviewed by Dimitri Glazkov.
+
+ This patch adds a basic grid-based results selector to the results
+ view. Currently, this grid just shows how the tests fail on the
+ various bots. A future patch will let you select which failure to view
+ and to mark the failures for rebaselining.
+
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js:
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js:
+ - Add some more basic functions for manipulating dictionaries.
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js:
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results_unittests.js:
+
+2011-09-03 Adam Barth <[email protected]>
+
garden-o-matic results view should show Actual and Expected results for text failures
https://bugs.webkit.org/show_bug.cgi?id=67536