Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1561)

Unified Diff: Tools/GardeningServer/scripts/results.js

Issue 402603007: Get sheriff-o-matic data from auto-sheriff.appspot.com. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: update and delete old code Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Tools/GardeningServer/scripts/results.js
diff --git a/Tools/GardeningServer/scripts/results.js b/Tools/GardeningServer/scripts/results.js
index 52e1735ba32aa30ff1420f8890060c68ac899550..74c50991e5d7d4b1e2b6ad428839484a863d10ac 100644
--- a/Tools/GardeningServer/scripts/results.js
+++ b/Tools/GardeningServer/scripts/results.js
@@ -27,8 +27,6 @@ var results = results || {};
(function() {
-var kResultsName = 'failing_results.json';
-
var PASS = 'PASS';
var TIMEOUT = 'TIMEOUT';
var TEXT = 'TEXT';
@@ -95,8 +93,6 @@ function possibleSuffixListFor(failureTypeList)
suffixList.push(kActualTextSuffix);
suffixList.push(kExpectedTextSuffix);
suffixList.push(kDiffTextSuffix);
- // '-wdiff.html',
- // '-pretty-diff.html',
}
failureTypeList.forEach(function(failureType) {
@@ -140,129 +136,9 @@ function failureTypeList(failureBlob)
function resultsDirectoryURL(builderName)
{
- return config.layoutTestResultsURL + '/' + config.resultsDirectoryNameFromBuilderName(builderName) + '/results/layout-test-results/';
-}
-
-function resultsDirectoryURLForBuildNumber(builderName, buildNumber)
-{
- return config.layoutTestResultsURL + '/' + config.resultsDirectoryNameFromBuilderName(builderName) + '/' + buildNumber + '/' ;
-}
-
-function resultsSummaryURL(builderName)
-{
- return resultsDirectoryURL(builderName) + kResultsName;
+ return config.layoutTestResultsURL + '/' + builderName.replace(/[ .()]/g, '_') + '/results/layout-test-results/';
}
-var g_resultsCache = new base.AsynchronousCache(function(key) {
- return net.jsonp(key);
-});
-
-results.ResultAnalyzer = function(resultNode)
-{
- this._isUnexpected = resultNode.is_unexpected;
- this._actual = resultNode ? failureTypeList(resultNode.actual) : [];
- this._expected = resultNode ? this._addImpliedExpectations(failureTypeList(resultNode.expected)) : [];
-};
-
-results.ResultAnalyzer.prototype = {
- _addImpliedExpectations: function(resultsList)
- {
- if (resultsList.indexOf('FAIL') == -1)
- return resultsList;
- return resultsList.concat(kFailingResults);
- },
- _hasPass: function(results)
- {
- return results.indexOf(PASS) != -1;
- },
- unexpectedResults: function()
- {
- return this._actual.filter(function(result) {
- return this._expected.indexOf(result) == -1;
- }, this);
- },
- succeeded: function()
- {
- return this._hasPass(this._actual);
- },
- flaky: function()
- {
- return this._actual.length > 1;
- },
- wontfix: function()
- {
- return this._expected.indexOf('WONTFIX') != -1;
- },
- hasUnexpectedFailures: function()
- {
- return this._isUnexpected;
- },
-};
-
-function isUnexpectedFailure(resultNode)
-{
- var analyzer = new results.ResultAnalyzer(resultNode);
- return analyzer.hasUnexpectedFailures() && !analyzer.succeeded() && !analyzer.flaky() && !analyzer.wontfix();
-}
-
-function isResultNode(node)
-{
- return !!node.actual;
-}
-
-results._joinPath = function(parent, child)
-{
- if (parent.length == 0)
- return child;
- return parent + '/' + child;
-};
-
-results._filterTree = function(tree, isLeaf, predicate)
-{
- var filteredTree = {};
-
- function walkSubtree(subtree, directory)
- {
- for (var childName in subtree) {
- var child = subtree[childName];
- var childPath = results._joinPath(directory, childName);
- if (isLeaf(child)) {
- if (predicate(child))
- filteredTree[childPath] = child;
- continue;
- }
- walkSubtree(child, childPath);
- }
- }
-
- walkSubtree(tree, '');
- return filteredTree;
-};
-
-results.unexpectedFailures = function(resultsTree)
-{
- return results._filterTree(resultsTree.tests, isResultNode, isUnexpectedFailure);
-};
-
-function resultsByTest(resultsByBuilder, filter)
-{
- var resultsByTest = {};
-
- Object.keys(resultsByBuilder, function(builderName, resultsTree) {
- Object.keys(filter(resultsTree), function(testName, resultNode) {
- resultsByTest[testName] = resultsByTest[testName] || {};
- resultsByTest[testName][builderName] = resultNode;
- });
- });
-
- return resultsByTest;
-}
-
-results.unexpectedFailuresByTest = function(resultsByBuilder)
-{
- return resultsByTest(resultsByBuilder, results.unexpectedFailures);
-};
-
results.failureInfo = function(testName, builderName, result)
{
return {
@@ -272,150 +148,6 @@ results.failureInfo = function(testName, builderName, result)
};
}
-// Callback data is [{ buildNumber:, url: }]
-function historicalResultsLocations(builderName)
-{
- return builders.mostRecentBuildForBuilder(builderName).then(function (mostRecentBuildNumber) {
- var resultsLocations = [];
- // Return the builds in reverse chronological order in order to load the most recent data first.
- for (var buildNumber = mostRecentBuildNumber; buildNumber > mostRecentBuildNumber - 100; --buildNumber) {
- resultsLocations.push({
- 'buildNumber': buildNumber,
- 'url': resultsDirectoryURLForBuildNumber(builderName, buildNumber) + "failing_results.json"
- });
- }
- return resultsLocations;
- });
-}
-
-// This will repeatedly call continueCallback(revision, resultNode) until it returns false.
-function walkHistory(builderName, testName, continueCallback)
-{
- var indexOfNextKeyToFetch = 0;
- var keyList = [];
-
- function continueWalk()
- {
- if (indexOfNextKeyToFetch >= keyList.length) {
- processResultNode(0, null);
- return;
- }
-
- var resultsURL = keyList[indexOfNextKeyToFetch].url;
- ++indexOfNextKeyToFetch;
- g_resultsCache.get(resultsURL).then(function(resultsTree) {
- if (!Object.size(resultsTree)) {
- continueWalk();
- return;
- }
- var resultNode = results.resultNodeForTest(resultsTree, testName);
- var revision = parseInt(resultsTree['blink_revision']);
- if (isNaN(revision))
- revision = 0;
- processResultNode(revision, resultNode);
- });
- }
-
- function processResultNode(revision, resultNode)
- {
- var shouldContinue = continueCallback(revision, resultNode);
- if (!shouldContinue)
- return;
- continueWalk();
- }
-
- historicalResultsLocations(builderName).then(function(resultsLocations) {
- keyList = resultsLocations;
- continueWalk();
- });
-}
-
-results.regressionRangeForFailure = function(builderName, testName) {
- return new Promise(function(resolve, reject) {
- var oldestFailingRevision = 0;
- var newestPassingRevision = 0;
-
- walkHistory(builderName, testName, function(revision, resultNode) {
- if (!revision) {
- resolve([oldestFailingRevision, newestPassingRevision]);
- return false;
- }
- if (!resultNode) {
- newestPassingRevision = revision;
- resolve([oldestFailingRevision, newestPassingRevision]);
- return false;
- }
- if (isUnexpectedFailure(resultNode)) {
- oldestFailingRevision = revision;
- return true;
- }
- if (!oldestFailingRevision)
- return true; // We need to keep looking for a failing revision.
- newestPassingRevision = revision;
- resolve([oldestFailingRevision, newestPassingRevision]);
- return false;
- });
- });
-};
-
-function mergeRegressionRanges(regressionRanges)
-{
- var mergedRange = {};
-
- mergedRange.oldestFailingRevision = 0;
- mergedRange.newestPassingRevision = 0;
-
- Object.keys(regressionRanges, function(builderName, range) {
- if (!range.oldestFailingRevision && !range.newestPassingRevision)
- return
-
- if (!mergedRange.oldestFailingRevision)
- mergedRange.oldestFailingRevision = range.oldestFailingRevision;
- if (!mergedRange.newestPassingRevision)
- mergedRange.newestPassingRevision = range.newestPassingRevision;
-
- if (range.oldestFailingRevision && range.oldestFailingRevision < mergedRange.oldestFailingRevision)
- mergedRange.oldestFailingRevision = range.oldestFailingRevision;
- if (range.newestPassingRevision > mergedRange.newestPassingRevision)
- mergedRange.newestPassingRevision = range.newestPassingRevision;
- });
-
- return mergedRange;
-}
-
-results.unifyRegressionRanges = function(builderNameList, testName) {
- var regressionRanges = {};
-
- var rangePromises = [];
- builderNameList.forEach(function(builderName) {
- rangePromises.push(results.regressionRangeForFailure(builderName, testName)
- .then(function(result) {
- var oldestFailingRevision = result[0];
- var newestPassingRevision = result[1];
- var range = {};
- range.oldestFailingRevision = oldestFailingRevision;
- range.newestPassingRevision = newestPassingRevision;
- regressionRanges[builderName] = range;
- }));
- });
- return Promise.all(rangePromises).then(function() {
- var mergedRange = mergeRegressionRanges(regressionRanges);
- return [mergedRange.oldestFailingRevision, mergedRange.newestPassingRevision];
- });
-};
-
-results.resultNodeForTest = function(resultsTree, testName)
-{
- var testNamePath = testName.split('/');
- var currentNode = resultsTree['tests'];
- testNamePath.forEach(function(segmentName) {
- if (!currentNode)
- return;
- currentNode = (segmentName in currentNode) ? currentNode[segmentName] : null;
- });
- return currentNode;
-};
-
results.resultKind = function(url)
{
if (/-actual\.[a-z]+$/.test(url))
@@ -480,19 +212,4 @@ results.fetchResultsURLs = function(failureInfo)
});
};
-results.fetchResultsByBuilder = function(builderNameList)
-{
- var resultsByBuilder = {};
- var fetchPromises = [];
- builderNameList.forEach(function(builderName) {
- var resultsURL = resultsSummaryURL(builderName);
- fetchPromises.push(net.jsonp(resultsURL).then(function(resultsTree) {
- resultsByBuilder[builderName] = resultsTree;
- }));
- });
- return Promise.all(fetchPromises).then(function() {
- return resultsByBuilder;
- });
-};
-
})();

Powered by Google App Engine
This is Rietveld 408576698