Diff
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/summary.js (93160 => 93161)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/summary.js 2011-08-16 21:39:32 UTC (rev 93160)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/summary.js 2011-08-16 21:55:42 UTC (rev 93161)
@@ -63,6 +63,12 @@
g_updateTimerId = window.setInterval(update, config.kUpdateFrequency);
document.body.insertBefore(g_actions, document.body.firstChild);
document.body.insertBefore(g_info, document.body.firstChild);
+ var button = document.body.insertBefore(document.createElement("button"), document.body.firstChild);
+ button.addEventListener("click", function()
+ {
+ update();
+ }, false);
+ button.textContent = 'update';
update();
});
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js (93160 => 93161)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js 2011-08-16 21:39:32 UTC (rev 93160)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js 2011-08-16 21:55:42 UTC (rev 93161)
@@ -82,6 +82,10 @@
{
// FIXME: Show type of failure and where it's failing.
this.textContent = failureAnalysis.testName;
+ },
+ equals: function(failureAnalysis)
+ {
+ return this.textContent == failureAnalysis.testName;
}
})
@@ -121,11 +125,18 @@
this._causes = problem.appendChild(document.createElement('ul'));
this._causes.className = 'causes';
},
+ containsFailureAnalysis: function(failureAnalysis)
+ {
+ return Array.prototype.some.call(this._tests.children, function(child) {
+ return child.equals(failureAnalysis);
+ });
+ },
addFailureAnalysis: function(failureAnalysis)
{
- // FIXME: Add in order.
- // FIXME: Don't add more than once.
+ if (this.containsFailureAnalysis(failureAnalysis))
+ return;
// FIXME: Retrieve date from failureAnalysis and set this._time.
+ // FIXME: Add in order by time.
return this._tests.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 (93160 => 93161)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js 2011-08-16 21:39:32 UTC (rev 93160)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js 2011-08-16 21:55:42 UTC (rev 93161)
@@ -46,10 +46,12 @@
ok(info.dismiss);
});
-test('ui.notifications.FailingTest', 2, function() {
+test('ui.notifications.FailingTest', 4, function() {
var failingTest = new ui.notifications.FailingTest({testName: 'test'});
equal(failingTest.tagName, 'LI');
equal(failingTest.innerHTML, 'test');
+ ok(failingTest.equals({testName: 'test'}));
+ ok(!failingTest.equals({testName: 'foo'}));
});
test('ui.notifications.SuspiciousCommit', 2, function() {
@@ -58,12 +60,16 @@
equal(suspiciousCommit.innerHTML, '<div class="description"><a href="" author (reviewer)</div><ul class="actions"><li><button>Roll out</button></li></ul>');
});
-test('ui.notifications.TestFailures', 4, function() {
+test('ui.notifications.TestFailures', 7, function() {
var testFailures = new ui.notifications.TestFailures();
equal(testFailures.tagName, 'LI');
equal(testFailures.innerHTML, '<time>Just Now</time><div class="what"><div class="problem"><ul class="effects"></ul><ul class="causes"></ul></div></div>');
testFailures.addFailureAnalysis({testName: 'test'});
equal(testFailures.innerHTML, '<time>Just Now</time><div class="what"><div class="problem"><ul class="effects"><li>test</li></ul><ul class="causes"></ul></div></div>');
+ ok(testFailures.containsFailureAnalysis({testName: 'test'}));
+ ok(!testFailures.containsFailureAnalysis({testName: 'foo'}));
+ testFailures.addFailureAnalysis({testName: 'test'});
+ equal(testFailures.innerHTML, '<time>Just Now</time><div class="what"><div class="problem"><ul class="effects"><li>test</li></ul><ul class="causes"></ul></div></div>');
testFailures.addCommitData({revision: 1, title: "title", author: "author", reviewer: "reviewer"});
equal(testFailures.innerHTML, '<time>Just Now</time><div class="what"><div class="problem"><ul class="effects"><li>test</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>');
});
Modified: trunk/Tools/ChangeLog (93160 => 93161)
--- trunk/Tools/ChangeLog 2011-08-16 21:39:32 UTC (rev 93160)
+++ trunk/Tools/ChangeLog 2011-08-16 21:55:42 UTC (rev 93161)
@@ -1,3 +1,15 @@
+2011-08-16 Dimitri Glazkov <[email protected]>
+
+ Summary view should not add multiple entries for the same test failure.
+ https://bugs.webkit.org/show_bug.cgi?id=66318
+
+ Reviewed by Adam Barth.
+
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/summary.js: Added a simplistic updating button.
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js: Added ways to check for
+ equality of ui.notifications.FailingTest, and whether ui.notifications.TestFailures already contains a given failure analysis.
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: Added tests.
+
2011-08-16 Adam Roben <[email protected]>
Teach TestFailures that tests that have failed or passed many times in a row are not flaky