Index: Tools/GardeningServer/scripts/results.js |
diff --git a/Tools/GardeningServer/scripts/results.js b/Tools/GardeningServer/scripts/results.js |
deleted file mode 100644 |
index fffe82737aa7847a5f66cfb3de08be6012f52e14..0000000000000000000000000000000000000000 |
--- a/Tools/GardeningServer/scripts/results.js |
+++ /dev/null |
@@ -1,222 +0,0 @@ |
-/* |
- * Copyright (C) 2011 Google Inc. All rights reserved. |
- * |
- * Redistribution and use in source and binary forms, with or without |
- * modification, are permitted provided that the following conditions |
- * are met: |
- * 1. Redistributions of source code must retain the above copyright |
- * notice, this list of conditions and the following disclaimer. |
- * 2. Redistributions in binary form must reproduce the above copyright |
- * notice, this list of conditions and the following disclaimer in the |
- * documentation and/or other materials provided with the distribution. |
- * |
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' |
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS |
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF |
- * THE POSSIBILITY OF SUCH DAMAGE. |
- */ |
- |
-var results = results || {}; |
- |
-(function() { |
- |
-var PASS = 'PASS'; |
-var TIMEOUT = 'TIMEOUT'; |
-var TEXT = 'TEXT'; |
-var CRASH = 'CRASH'; |
-var LEAK = 'LEAK'; |
-var IMAGE = 'IMAGE'; |
-var IMAGE_TEXT = 'IMAGE+TEXT'; |
-var AUDIO = 'AUDIO'; |
-var MISSING = 'MISSING'; |
- |
-var kFailingResults = [TEXT, IMAGE_TEXT, AUDIO]; |
- |
-var kExpectedImageSuffix = '-expected.png'; |
-var kActualImageSuffix = '-actual.png'; |
-var kImageDiffSuffix = '-diff.png'; |
-var kExpectedAudioSuffix = '-expected.wav'; |
-var kActualAudioSuffix = '-actual.wav'; |
-var kExpectedTextSuffix = '-expected.txt'; |
-var kActualTextSuffix = '-actual.txt'; |
-var kDiffTextSuffix = '-diff.txt'; |
-var kCrashLogSuffix = '-crash-log.txt'; |
-var kLeakLogSuffix = '-leak-log.txt'; |
- |
-var kPreferredSuffixOrder = [ |
- kExpectedImageSuffix, |
- kActualImageSuffix, |
- kImageDiffSuffix, |
- kExpectedTextSuffix, |
- kActualTextSuffix, |
- kDiffTextSuffix, |
- kCrashLogSuffix, |
- kExpectedAudioSuffix, |
- kActualAudioSuffix, |
- kLeakLogSuffix, |
-]; |
- |
-// Kinds of results. |
-results.kActualKind = 'actual'; |
-results.kExpectedKind = 'expected'; |
-results.kDiffKind = 'diff'; |
-results.kUnknownKind = 'unknown'; |
- |
-// Types of tests. |
-results.kImageType = 'image'; |
-results.kAudioType = 'audio'; |
-results.kTextType = 'text'; |
- |
-function possibleSuffixListFor(failureTypeList) |
-{ |
- var suffixList = []; |
- |
- function pushImageSuffixes() |
- { |
- suffixList.push(kExpectedImageSuffix); |
- suffixList.push(kActualImageSuffix); |
- suffixList.push(kImageDiffSuffix); |
- } |
- |
- function pushAudioSuffixes() |
- { |
- suffixList.push(kExpectedAudioSuffix); |
- suffixList.push(kActualAudioSuffix); |
- } |
- |
- function pushTextSuffixes() |
- { |
- suffixList.push(kActualTextSuffix); |
- suffixList.push(kExpectedTextSuffix); |
- suffixList.push(kDiffTextSuffix); |
- } |
- |
- failureTypeList.forEach(function(failureType) { |
- switch(failureType) { |
- case IMAGE: |
- pushImageSuffixes(); |
- break; |
- case TEXT: |
- pushTextSuffixes(); |
- break; |
- case AUDIO: |
- pushAudioSuffixes(); |
- break; |
- case IMAGE_TEXT: |
- pushImageSuffixes(); |
- pushTextSuffixes(); |
- break; |
- case CRASH: |
- suffixList.push(kCrashLogSuffix); |
- break; |
- case LEAK: |
- suffixList.push(kLeakLogSuffix); |
- break; |
- case MISSING: |
- pushImageSuffixes(); |
- pushTextSuffixes(); |
- break; |
- default: |
- // FIXME: Add support for the rest of the result types. |
- // '-expected.html', |
- // '-expected-mismatch.html', |
- // ... and possibly more. |
- break; |
- } |
- }); |
- |
- return suffixList.unique(); |
-} |
- |
-function failureTypeList(failureBlob) |
-{ |
- return failureBlob.split(' '); |
-}; |
- |
-function resultsDirectoryURL(builderName) |
-{ |
- return 'https://storage.googleapis.com/chromium-layout-test-archives/' + |
- builderName.replace(/[ .()]/g, '_') + '/results/layout-test-results/'; |
-} |
- |
-results.failureInfo = function(testName, builderName, result) |
-{ |
- return { |
- 'testName': testName, |
- 'builderName': builderName, |
- 'failureTypeList': failureTypeList(result), |
- }; |
-} |
- |
-results.resultKind = function(url) |
-{ |
- if (/-actual\.[a-z]+$/.test(url)) |
- return results.kActualKind; |
- else if (/-expected\.[a-z]+$/.test(url)) |
- return results.kExpectedKind; |
- else if (/diff\.[a-z]+$/.test(url)) |
- return results.kDiffKind; |
- return results.kUnknownKind; |
-} |
- |
-results.resultType = function(url) |
-{ |
- if (/\.png$/.test(url)) |
- return results.kImageType; |
- if (/\.wav$/.test(url)) |
- return results.kAudioType; |
- return results.kTextType; |
-} |
- |
-function sortResultURLsBySuffix(urls) |
-{ |
- var sortedURLs = []; |
- kPreferredSuffixOrder.forEach(function(suffix) { |
- urls.forEach(function(url) { |
- if (!url.endsWith(suffix)) |
- return; |
- sortedURLs.push(url); |
- }); |
- }); |
- if (sortedURLs.length != urls.length) |
- throw "sortResultURLsBySuffix failed to return the same number of URLs."; |
- return sortedURLs; |
-} |
- |
-results._trimExtension = function(url) |
-{ |
- var index = url.lastIndexOf('.'); |
- if (index == -1) |
- return url; |
- return url.substr(0, index); |
-} |
- |
-results.fetchResultsURLs = function(failureInfo) |
-{ |
- var testNameStem = results._trimExtension(failureInfo.testName); |
- var urlStem = resultsDirectoryURL(failureInfo.builderName); |
- |
- var suffixList = possibleSuffixListFor(failureInfo.failureTypeList); |
- var resultURLs = []; |
- var probePromises = []; |
- suffixList.forEach(function(suffix) { |
- var url = urlStem + testNameStem + suffix; |
- probePromises.push(net.probe(url).then( |
- function() { |
- resultURLs.push(url); |
- }, |
- function() {})); |
- }); |
- return Promise.all(probePromises).then(function() { |
- return sortResultURLsBySuffix(resultURLs); |
- }); |
-}; |
- |
-})(); |