Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js (120554 => 120555)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js 2012-06-17 23:06:12 UTC (rev 120554)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js 2012-06-18 00:20:01 UTC (rev 120555)
@@ -43,6 +43,7 @@
},
haveBuilderAccumulatedResults : false,
useDirectoryListingForOldBuilds: false,
+ useFlakinessDashboard: false,
resultsDirectoryNameFromBuilderName: function(builderName) {
return encodeURIComponent(builderName);
},
@@ -73,6 +74,7 @@
},
haveBuilderAccumulatedResults : true,
useDirectoryListingForOldBuilds: true,
+ useFlakinessDashboard: true,
resultsDirectoryNameFromBuilderName: function(builderName) {
return builderName.replace(/[ .()]/g, '_');
},
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js (120554 => 120555)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js 2012-06-17 23:06:12 UTC (rev 120554)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js 2012-06-18 00:20:01 UTC (rev 120555)
@@ -306,6 +306,8 @@
$.each(resultsByBuilder, function(builderName, resultsTree) {
$.each(filter(resultsTree), function(testName, resultNode) {
resultsByTest[testName] = resultsByTest[testName] || {};
+ if (!config.kPlatforms[config.currentPlatform].haveBuilderAccumulatedResults)
+ resultNode._buildLocation = resultsTree._buildLocation;
resultsByTest[testName][builderName] = resultNode;
});
});
@@ -330,11 +332,16 @@
results.failureInfoForTestAndBuilder = function(resultsByTest, testName, builderName)
{
- return {
+ var failureInfoForTest = {
'testName': testName,
'builderName': builderName,
- 'failureTypeList': results.failureTypeList(resultsByTest[testName][builderName].actual)
- }
+ 'failureTypeList': results.failureTypeList(resultsByTest[testName][builderName].actual),
+ };
+
+ if (!config.kPlatforms[config.currentPlatform].haveBuilderAccumulatedResults)
+ failureInfoForTest.buildLocation = resultsByTest[testName][builderName]._buildLocation;
+
+ return failureInfoForTest;
};
results.collectUnexpectedResults = function(dictionaryOfResultNodes)
@@ -347,29 +354,38 @@
return base.uniquifyArray(collectedResults);
};
-function historicalResultsSummaryURLs(platform, builderName, callback)
+// Callback data is [{ buildNumber:, revision:, url: }]
+function historicalResultsLocations(platform, builderName, callback)
{
if (config.kPlatforms[platform].useDirectoryListingForOldBuilds) {
var listingURL = resultsDirectoryListingURL(platform, builderName);
net.get(listingURL, function(directoryListing) {
- var summaryURLs = directoryListing.match(kBuildLinkRegexp).map(function(buildLink) {
+ var historicalResultsData = directoryListing.match(kBuildLinkRegexp).map(function(buildLink) {
var buildNumber = parseInt(buildLink.match(kBuildNumberRegexp)[0]);
- var revision = 0; // FIXME: need revision for Apple.
- return resultsSummaryURLForBuildNumber(platform, builderName, buildNumber, revision);
+ var revision = 0; // unused for Chromium.
+ var resultsData = {
+ 'buildNumber': buildNumber,
+ 'revision': revision,
+ 'url': resultsSummaryURLForBuildNumber(platform, builderName, buildNumber, revision)
+ };
+ return resultsData;
}).reverse();
- callback(summaryURLs);
+ callback(historicalResultsData);
});
} else {
- var summaryURLs = [];
+ var historicalResultsData = [];
builders.cachedBuildInfos(platform, builderName, function(cachedBuildInfos) {
$.each(cachedBuildInfos, function(buildNumber, buildInfo) {
- var revision = buildInfo.sourceStamp.revision;
- var url = "" builderName, buildNumber, revision);
- summaryURLs.push(url);
+ var resultsData = {
+ 'buildNumber': buildNumber,
+ 'revision': buildInfo.sourceStamp.revision,
+ 'url': resultsSummaryURLForBuildNumber(platform, builderName, buildNumber, buildInfo.sourceStamp.revision),
+ }
+ historicalResultsData.push(resultsData);
});
- callback(summaryURLs.reverse());
+ callback(historicalResultsData.reverse());
});
}
}
@@ -386,9 +402,9 @@
return;
}
- var key = keyList[indexOfNextKeyToFetch];
+ var resultsURL = keyList[indexOfNextKeyToFetch].url;
++indexOfNextKeyToFetch;
- g_resultsCache.get(key, function(resultsTree) {
+ g_resultsCache.get(resultsURL, function(resultsTree) {
if ($.isEmptyObject(resultsTree)) {
continueWalk();
return;
@@ -409,8 +425,8 @@
continueWalk();
}
- historicalResultsSummaryURLs(platform, builderName, function(summaryURLs) {
- keyList = summaryURLs;
+ historicalResultsLocations(platform, builderName, function(resultsLocations) {
+ keyList = resultsLocations;
continueWalk();
});
}
@@ -557,15 +573,21 @@
results.fetchResultsURLs = function(failureInfo, callback)
{
- var stem = resultsDirectoryURL(config.currentPlatform, failureInfo.builderName);
var testNameStem = base.trimExtension(failureInfo.testName);
+ var urlStem;
+
+ if (config.kPlatforms[config.currentPlatform].haveBuilderAccumulatedResults)
+ urlStem = resultsDirectoryURL(config.currentPlatform, failureInfo.builderName);
+ else
+ urlStem = failureInfo.buildLocation.url.replace(kResultsName, '');
+
var suffixList = possibleSuffixListFor(failureInfo.failureTypeList);
var resultURLs = [];
var tracker = new base.RequestTracker(suffixList.length, function() {
callback(sortResultURLsBySuffix(resultURLs));
});
$.each(suffixList, function(index, suffix) {
- var url = "" + testNameStem + suffix;
+ var url = "" + testNameStem + suffix;
net.probe(url, {
success: function() {
resultURLs.push(url);
@@ -593,17 +615,19 @@
// Look for the most recent completed build that has full results.
results.fetchResultsForMostRecentCompletedBuildOnBuilder = function(builderName, callback)
{
- historicalResultsSummaryURLs(config.currentPlatform, builderName, function(buildURLs) {
+ historicalResultsLocations(config.currentPlatform, builderName, function(buildLocations) {
var currentIndex = 0;
var resultsCallback = function(buildResults) {
if ($.isEmptyObject(buildResults)) {
++currentIndex;
- net.jsonp(buildURLs[currentIndex], resultsCallback);
+ net.jsonp(buildLocations[currentIndex].url, resultsCallback);
return;
}
+ if (!config.kPlatforms[config.currentPlatform].haveBuilderAccumulatedResults)
+ buildResults._buildLocation = buildLocations[currentIndex];
callback(buildResults);
};
- net.jsonp(buildURLs[currentIndex], resultsCallback);
+ net.jsonp(buildLocations[currentIndex].url, resultsCallback);
});
};
@@ -627,7 +651,6 @@
if (recentBuildInfos[builderName]) {
// FIXME: use RequestTracker
++requestsInFlight;
- var buildInfo = recentBuildInfos[builderName];
results.fetchResultsForMostRecentCompletedBuildOnBuilder(builderName, function(resultsTree) {
resultsByBuilder[builderName] = resultsTree;
--requestsInFlight;
Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js (120554 => 120555)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js 2012-06-17 23:06:12 UTC (rev 120554)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js 2012-06-18 00:20:01 UTC (rev 120555)
@@ -254,7 +254,7 @@
var header = document.createElement('h3');
header.appendChild(nonLinkTitle);
header.appendChild(linkTitle);
- header.addEventListener('click', this._showResults.bind(this, header));
+ header.addEventListener('click', this._showResults.bind(this, header, false));
topPanel.appendChild(header);
}, this);
@@ -290,7 +290,7 @@
document.querySelector('.top-panel').style.maxHeight = percentage + '%';
}.bind(this))
},
- _showResults: function(header)
+ _showResults: function(header, scrollInfoView)
{
if (!header)
return false;
@@ -308,9 +308,11 @@
bottomPanel.appendChild(this._delegate.contentForTest(testName));
var topPanel = this.querySelector('.top-panel');
- topPanel.scrollTop = header.offsetTop;
- if (header.offsetTop - topPanel.scrollTop < header.offsetHeight)
- topPanel.scrollTop = topPanel.scrollTop - header.offsetHeight;
+ if (scrollInfoView) {
+ topPanel.scrollTop = header.offsetTop;
+ if (header.offsetTop - topPanel.scrollTop < header.offsetHeight)
+ topPanel.scrollTop = topPanel.scrollTop - header.offsetHeight;
+ }
var resultsDetails = this.querySelectorAll('.results-detail');
if (resultsDetails.length)
@@ -337,18 +339,18 @@
},
nextTest: function()
{
- return this._showResults(this.querySelector('.active').nextSibling);
+ return this._showResults(this.querySelector('.active').nextSibling, true);
},
previousTest: function()
{
- var succeeded = this._showResults(this.querySelector('.active').previousSibling);
+ var succeeded = this._showResults(this.querySelector('.active').previousSibling, true);
if (succeeded)
this.querySelector('.builder-selector').lastResult();
return succeeded;
},
firstResult: function()
{
- this._showResults(this.querySelector('h3'));
+ this._showResults(this.querySelector('h3'), true);
},
currentTestName: function()
{