Title: [90172] trunk/Tools
- Revision
- 90172
- Author
- [email protected]
- Date
- 2011-06-30 15:28:32 -0700 (Thu, 30 Jun 2011)
Log Message
Make TestFailures never treat a too-many-failures build as a last-passing build for a test
Fixes <http://webkit.org/b/63758> TestFailures sometimes incorrectly says that a build was
the last passing build for a test, when in fact the test wasn't run due to too many failures
causing old-run-webkit-tests to exit early
Reviewed by Anders Carlsson.
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/LayoutTestHistoryAnalyzer.js:
(LayoutTestHistoryAnalyzer.prototype._incorporateBuildHistory): If there were too many
failures in this build, assume that all the tests failed in the last build would have failed
in this build, too, had they been run. Introduced some new local variables to reduce typing,
and used them throughout.
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/LayoutTestResultsLoader.js:
(LayoutTestResultsLoader.prototype.start): Fix a regression from r89841 where we wouldn't
correctly remember whether old-run-webkit-tests exited early due to too many failures for
builds older than r89610. Also removed an unused parameter while I was at it.
Modified Paths
Diff
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/LayoutTestHistoryAnalyzer.js (90171 => 90172)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/LayoutTestHistoryAnalyzer.js 2011-06-30 22:28:10 UTC (rev 90171)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/LayoutTestHistoryAnalyzer.js 2011-06-30 22:28:32 UTC (rev 90172)
@@ -117,11 +117,16 @@
self._loader.start(nextBuildName, function(tests, tooManyFailures) {
++self._testRunsSinceLastInterestingChange;
- self._history[nextBuildName] = {
+ var historyItem = {
tooManyFailures: tooManyFailures,
tests: {},
};
+ self._history[nextBuildName] = historyItem;
+ var previousHistoryItem;
+ if (previousBuildName)
+ previousHistoryItem = self._history[previousBuildName];
+
var newFlakyTests = self._flakinessDetector.incorporateTestResults(nextBuildName, tests, tooManyFailures);
if (newFlakyTests.length) {
self._testRunsSinceLastInterestingChange = 0;
@@ -134,14 +139,24 @@
}
for (var testName in tests) {
- if (previousBuildName) {
- if (!(testName in self._history[previousBuildName].tests))
+ if (previousHistoryItem) {
+ if (!(testName in previousHistoryItem.tests))
continue;
- delete self._history[previousBuildName].tests[testName];
+ delete previousHistoryItem.tests[testName];
}
- self._history[nextBuildName].tests[testName] = tests[testName];
+ historyItem.tests[testName] = tests[testName];
}
+ if (tooManyFailures && previousHistoryItem) {
+ // Not all tests were run due to too many failures. Just assume that all the tests
+ // that failed in the last build would still have failed in this build had they been
+ // run.
+ for (var testName in previousHistoryItem.tests) {
+ historyItem.tests[testName] = previousHistoryItem.tests[testName];
+ delete previousHistoryItem.tests[testName];
+ }
+ }
+
var previousUnexplainedFailuresCount = previousBuildName ? Object.keys(self._history[previousBuildName].tests).length : 0;
var unexplainedFailuresCount = Object.keys(self._history[nextBuildName].tests).length;
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/LayoutTestResultsLoader.js (90171 => 90172)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/LayoutTestResultsLoader.js 2011-06-30 22:28:10 UTC (rev 90171)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/LayoutTestResultsLoader.js 2011-06-30 22:28:32 UTC (rev 90172)
@@ -48,7 +48,7 @@
var self = this;
- function fetchAndParseResultsHTMLAndCallCallback(callback, tooManyFailures) {
+ function fetchAndParseResultsHTMLAndCallCallback(callback) {
getResource(self._builder.resultsPageURL(buildName), function(xhr) {
var root = document.createElement('html');
root.innerHTML = xhr.responseText;
@@ -115,6 +115,8 @@
}
self._builder.getNumberOfFailingTests(parsedBuildName.buildNumber, function(failingTestCount, tooManyFailures) {
+ result.tooManyFailures = tooManyFailures;
+
if (failingTestCount < 0) {
// The number of failing tests couldn't be determined.
PersistentCache.set(cacheKey, result);
Modified: trunk/Tools/ChangeLog (90171 => 90172)
--- trunk/Tools/ChangeLog 2011-06-30 22:28:10 UTC (rev 90171)
+++ trunk/Tools/ChangeLog 2011-06-30 22:28:32 UTC (rev 90172)
@@ -1,5 +1,26 @@
2011-06-30 Adam Roben <[email protected]>
+ Make TestFailures never treat a too-many-failures build as a last-passing build for a test
+
+ Fixes <http://webkit.org/b/63758> TestFailures sometimes incorrectly says that a build was
+ the last passing build for a test, when in fact the test wasn't run due to too many failures
+ causing old-run-webkit-tests to exit early
+
+ Reviewed by Anders Carlsson.
+
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/LayoutTestHistoryAnalyzer.js:
+ (LayoutTestHistoryAnalyzer.prototype._incorporateBuildHistory): If there were too many
+ failures in this build, assume that all the tests failed in the last build would have failed
+ in this build, too, had they been run. Introduced some new local variables to reduce typing,
+ and used them throughout.
+
+ * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/LayoutTestResultsLoader.js:
+ (LayoutTestResultsLoader.prototype.start): Fix a regression from r89841 where we wouldn't
+ correctly remember whether old-run-webkit-tests exited early due to too many failures for
+ builds older than r89610. Also removed an unused parameter while I was at it.
+
+2011-06-30 Adam Roben <[email protected]>
+
Make TestFaiulres only load old-results directories as needed
Fixes <http://webkit.org/b/63752> Tester pages on TestFailures page load very slowly
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes