Diff
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js (93829 => 93830)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js 2011-08-25 22:58:28 UTC (rev 93829)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js 2011-08-25 23:02:55 UTC (rev 93830)
@@ -94,9 +94,10 @@
{
var key = failureAnalysis.newestPassingRevision + "+" + failureAnalysis.oldestFailingRevision;
var failure = this._testFailures.get(key);
+ var impliedFirstFailingRevision = failureAnalysis.newestPassingRevision + 1;
if (!failure) {
failure = new ui.notifications.TestFailures();
- model.commitDataListForRevisionRange(failureAnalysis.newestPassingRevision + 1, failureAnalysis.oldestFailingRevision).forEach(function(commitData) {
+ model.commitDataListForRevisionRange(impliedFirstFailingRevision, failureAnalysis.oldestFailingRevision).forEach(function(commitData) {
failure.addCommitData(commitData);
});
this._view.add(failure);
@@ -105,6 +106,7 @@
}.bind(this));
}
failure.addFailureAnalysis(failureAnalysis);
+ failure.updateBuilderResults(model.buildersInFlightForRevision(impliedFirstFailingRevision));
this._testFailures.update(key, failure);
},
purge: function() {
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js (93829 => 93830)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js 2011-08-25 22:58:28 UTC (rev 93829)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js 2011-08-25 23:02:55 UTC (rev 93830)
@@ -129,6 +129,17 @@
return result;
};
+model.buildersInFlightForRevision = function(revision)
+{
+ var builders = {};
+ Object.keys(model.state.resultsByBuilder).forEach(function(builderName) {
+ var results = model.state.resultsByBuilder[builderName];
+ if (parseInt(results.revision) < revision)
+ builders[builderName] = { actual: 'BUILDING' };
+ });
+ return builders;
+};
+
model.updateResultsByBuilder = function(callback)
{
results.fetchResultsByBuilder(Object.keys(config.kBuilders), function(resultsByBuilder) {
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model_unittests.js (93829 => 93830)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model_unittests.js 2011-08-25 22:58:28 UTC (rev 93829)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model_unittests.js 2011-08-25 23:02:55 UTC (rev 93830)
@@ -208,4 +208,35 @@
});
});
+test("buildersInFlightForRevision", 3, function() {
+ var unmock = model.state.resultsByBuilder;
+ model.state.resultsByBuilder = {
+ 'Mr. Beasley': {revision: '5'},
+ 'Mr Dixon': {revision: '1'},
+ 'Mr. Sabatini': {revision: '4'},
+ 'Bob': {revision: '6'}
+ };
+ deepEqual(model.buildersInFlightForRevision(1), {});
+ deepEqual(model.buildersInFlightForRevision(3), {
+ "Mr Dixon": {
+ "actual": "BUILDING"
+ }
+ });
+ deepEqual(model.buildersInFlightForRevision(10), {
+ "Mr. Beasley": {
+ "actual": "BUILDING"
+ },
+ "Mr Dixon": {
+ "actual": "BUILDING"
+ },
+ "Mr. Sabatini": {
+ "actual": "BUILDING"
+ },
+ "Bob": {
+ "actual": "BUILDING"
+ }
+ });
+ model.state.resultsByBuilder = unmock;
+});
+
})();
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js (93829 => 93830)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js 2011-08-25 22:58:28 UTC (rev 93829)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js 2011-08-25 23:02:55 UTC (rev 93830)
@@ -151,12 +151,16 @@
return child.equals(failureAnalysis);
});
},
+ updateBuilderResults: function(resultNodesByBuilder)
+ {
+ this._where.add(resultNodesByBuilder);
+ },
addFailureAnalysis: function(failureAnalysis)
{
if (this.containsFailureAnalysis(failureAnalysis))
return;
this._testNameList.push(failureAnalysis.testName);
- this._where.add(failureAnalysis.resultNodesByBuilder);
+ this.updateBuilderResults(failureAnalysis.resultNodesByBuilder);
return this._effects.appendChild(new ui.notifications.FailingTest(failureAnalysis));
},
addCommitData: function(commitData)
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js (93829 => 93830)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js 2011-08-25 22:58:28 UTC (rev 93829)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js 2011-08-25 23:02:55 UTC (rev 93830)
@@ -90,8 +90,16 @@
equal(suspiciousCommit.innerHTML, '<div class="description"><a href="" author (reviewer)</div><ul class="actions"><li><button>Roll out</button></li></ul>');
});
-test('TestFailures', 11, function() {
+test('TestFailures', 13, function() {
var testFailures = new ui.notifications.TestFailures();
+ deepEqual(Object.getOwnPropertyNames(testFailures.__proto__), [
+ "init",
+ "testNameList",
+ "updateBuilderResults",
+ "addFailureAnalysis",
+ "containsFailureAnalysis",
+ "addCommitData"
+ ]);
equal(testFailures.tagName, 'LI');
equal(testFailures.innerHTML,
'<time class="relative">Just now</time>' +
@@ -214,6 +222,46 @@
'<li><button>Examine</button></li>' +
'</ul>');
+ testFailures.updateBuilderResults({'Webkit Mac10.5 (CG)': { actual: 'BUILDING'}});
+ equal(testFailures.innerHTML,
+ '<time class="relative">10 minutes ago</time>' +
+ '<table class="failures">' +
+ '<thead><tr><td>type</td><td>release</td><td>debug</td></tr></thead>' +
+ '<tbody>' +
+ '<tr>' +
+ '<td>TEXT</td>' +
+ '<td></td>' +
+ '<td><div><span class="build-type">64-bit</span><span class="version">lucid</span></div></td>' +
+ '</tr>' +
+ '<tr>' +
+ '<td>BUILDING</td>' +
+ '<td><div><span class="version">leopard</span></div></td>' +
+ '<td></td>' +
+ '</tr>' +
+ '</tbody>' +
+ '</table>' +
+ '<div class="what">' +
+ '<div class="problem">' +
+ '<ul class="effects">' +
+ '<li>test</li>' +
+ '<li>foo</li>' +
+ '</ul>' +
+ '<ul class="causes">' +
+ '<li>' +
+ '<div class="description">' +
+ '<a href="" author (reviewer)'+
+ '</div>' +
+ '<ul class="actions">' +
+ '<li><button>Roll out</button></li>' +
+ '</ul>' +
+ '</li>' +
+ '</ul>' +
+ '</div>' +
+ '</div>' +
+ '<ul class="actions">' +
+ '<li><button>Examine</button></li>' +
+ '</ul>');
+
});
test('BuildersFailing', 1, function() {
Modified: trunk/Tools/ChangeLog (93829 => 93830)
--- trunk/Tools/ChangeLog 2011-08-25 22:58:28 UTC (rev 93829)
+++ trunk/Tools/ChangeLog 2011-08-25 23:02:55 UTC (rev 93830)
@@ -1,3 +1,16 @@
+2011-08-25 Dimitri Glazkov <[email protected]>
+
+ garden-o-matic summary view should provide information on builders still in flight.
+ https://bugs.webkit.org/show_bug.cgi?id=66992
+
+ Reviewed by Adam Barth.
+
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js: Added grabbing the list of in-flight builders.
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js: Added buildersInFlightForRevision.
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model_unittests.js: Added tests.
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js: Split off updating builder results to own method.
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: Added tests.
+
2011-08-25 Adam Barth <[email protected]>
webkit-patch rebaseline-expectations don't work when run outside the root