| Index: Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js
|
| diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js
|
| deleted file mode 100644
|
| index 7f5b36c21db01ddd952e532a3816ba0f1d865647..0000000000000000000000000000000000000000
|
| --- a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js
|
| +++ /dev/null
|
| @@ -1,190 +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 builders = builders || {};
|
| -
|
| -(function() {
|
| -
|
| -var kUpdateStepName = 'update';
|
| -var kUpdateScriptsStepName = 'update_scripts';
|
| -var kCompileStepName = 'compile';
|
| -var kWebKitTestsStepNames = ['webkit_tests', 'layout-test'];
|
| -
|
| -var kCrashedOrHungOutputMarker = 'crashed or hung';
|
| -
|
| -function buildBotURL(platform)
|
| -{
|
| - return config.kPlatforms[platform].buildConsoleURL;
|
| -}
|
| -
|
| -function urlForBuilderInfo(platform, builderName)
|
| -{
|
| - return buildBotURL(platform) + '/json/builders/' + encodeURIComponent(builderName) + '/';
|
| -}
|
| -
|
| -function urlForBuildInfo(platform, builderName, buildNumber)
|
| -{
|
| - return buildBotURL(platform) + '/json/builders/' + encodeURIComponent(builderName) + '/builds/' + encodeURIComponent(buildNumber);
|
| -}
|
| -
|
| -function didFail(step)
|
| -{
|
| - if (kWebKitTestsStepNames.indexOf(step.name) != -1) {
|
| - // run-webkit-tests fails to generate test coverage when it crashes or hangs.
|
| - // FIXME: Do build.webkit.org bots output this marker when the tests fail to run?
|
| - return step.text.indexOf(kCrashedOrHungOutputMarker) != -1;
|
| - }
|
| - // The first item in step.results is the success of the step:
|
| - // 0 == pass, 1 == warning, 2 == fail
|
| - return step.results[0] == 2;
|
| -}
|
| -
|
| -function failingSteps(buildInfo)
|
| -{
|
| - return buildInfo.steps.filter(didFail);
|
| -}
|
| -
|
| -function mostRecentCompletedBuildNumber(individualBuilderStatus)
|
| -{
|
| - if (!individualBuilderStatus)
|
| - return null;
|
| -
|
| - for (var i = individualBuilderStatus.cachedBuilds.length - 1; i >= 0; --i) {
|
| - var buildNumber = individualBuilderStatus.cachedBuilds[i];
|
| - if (individualBuilderStatus.currentBuilds.indexOf(buildNumber) == -1)
|
| - return buildNumber;
|
| - }
|
| -
|
| - return null;
|
| -}
|
| -
|
| -var g_buildInfoCache = new base.AsynchronousCache(function(key, callback) {
|
| - var explodedKey = key.split('\n');
|
| - net.get(urlForBuildInfo(explodedKey[0], explodedKey[1], explodedKey[2]), callback);
|
| -});
|
| -
|
| -builders.clearBuildInfoCache = function()
|
| -{
|
| - g_buildInfoCache.clear();
|
| -}
|
| -
|
| -function fetchMostRecentBuildInfoByBuilder(platform, callback)
|
| -{
|
| - net.get(buildBotURL(platform) + '/json/builders', function(builderStatus) {
|
| - var buildInfoByBuilder = {};
|
| - var builderNames = Object.keys(builderStatus);
|
| - var requestTracker = new base.RequestTracker(builderNames.length, callback, [buildInfoByBuilder]);
|
| - builderNames.forEach(function(builderName) {
|
| - if (!config.builderApplies(builderName)) {
|
| - requestTracker.requestComplete();
|
| - return;
|
| - }
|
| -
|
| - var buildNumber = mostRecentCompletedBuildNumber(builderStatus[builderName]);
|
| - if (!buildNumber) {
|
| - buildInfoByBuilder[builderName] = null;
|
| - requestTracker.requestComplete();
|
| - return;
|
| - }
|
| -
|
| - g_buildInfoCache.get(platform + '\n' + builderName + '\n' + buildNumber, function(buildInfo) {
|
| - buildInfoByBuilder[builderName] = buildInfo;
|
| - requestTracker.requestComplete();
|
| - });
|
| - });
|
| - });
|
| -}
|
| -
|
| -builders.builderInfo = function(platform, builderName, callback)
|
| -{
|
| - var builderInfoURL = urlForBuilderInfo(platform, builderName);
|
| - net.get(builderInfoURL, callback);
|
| -};
|
| -
|
| -builders.cachedBuildInfos = function(platform, builderName, callback)
|
| -{
|
| - var builderInfoURL = urlForBuilderInfo(platform, builderName);
|
| - net.get(builderInfoURL, function(builderInfo) {
|
| - var selectURL = urlForBuilderInfo(platform, builderName) + 'builds';
|
| - var start = Math.max(0, builderInfo.cachedBuilds.length - config.kBuildNumberLimit);
|
| - var selectParams = { select : builderInfo.cachedBuilds.slice(start) };
|
| - var traditionalEncoding = true;
|
| - selectURL += '?' + $.param(selectParams, traditionalEncoding);
|
| - net.get(selectURL, callback);
|
| - });
|
| -}
|
| -
|
| -builders.recentBuildInfos = function(callback)
|
| -{
|
| - fetchMostRecentBuildInfoByBuilder(config.currentPlatform, function(buildInfoByBuilder) {
|
| - var buildInfo = {};
|
| - $.each(buildInfoByBuilder, function(builderName, thisBuildInfo) {
|
| - if (!buildInfo)
|
| - return;
|
| -
|
| - buildInfo[builderName] = thisBuildInfo;
|
| - });
|
| - callback(buildInfo);
|
| - });
|
| -};
|
| -
|
| -builders.buildersFailingNonLayoutTests = function(callback)
|
| -{
|
| - fetchMostRecentBuildInfoByBuilder(config.currentPlatform, function(buildInfoByBuilder) {
|
| - var failureList = {};
|
| - $.each(buildInfoByBuilder, function(builderName, buildInfo) {
|
| - if (!buildInfo)
|
| - return;
|
| - var failures = failingSteps(buildInfo);
|
| - if (failures.length)
|
| - failureList[builderName] = failures.map(function(failure) { return failure.name; });
|
| - });
|
| - callback(failureList);
|
| - });
|
| -};
|
| -
|
| -builders.perfBuilders = function(callback)
|
| -{
|
| - fetchMostRecentBuildInfoByBuilder(config.currentPlatform, function(buildInfoByBuilder) {
|
| - var perfTestMap = {};
|
| - $.each(buildInfoByBuilder, function(builderName, buildInfo) {
|
| - if (!buildInfo || builderName.indexOf('Perf') == -1)
|
| - return;
|
| -
|
| - buildInfo.steps.forEach(function(step) {
|
| - // FIXME: If the compile is broken, grab an older build.
|
| - // If the compile/update is broken, no steps will have a results url.
|
| - if (!step.urls.results)
|
| - return;
|
| - if (!perfTestMap[step.name])
|
| - perfTestMap[step.name] = [];
|
| - perfTestMap[step.name].push({ builder: builderName, url: step.urls.results });
|
| - });
|
| - });
|
| - callback(perfTestMap);
|
| - });
|
| -}
|
| -
|
| -})();
|
|
|