+2012-04-02 Ojan Vafai <ojan@chromium.org>
+
+ Load all builder lists from the buildbot json
+ https://bugs.webkit.org/show_bug.cgi?id=82998
+
+ Reviewed by Adam Barth.
+
+ Also, remove an unnecessary list of test types. Now we don't hard-code
+ builder names anywhere and we only have a single hard-coded list of
+ test types.
+
+ * TestResultServer/static-dashboards/builders.js:
+ (BuilderMaster.prototype.logPath):
+ (BuilderMaster.prototype.builderJsonPath):
+ (requestBuilderList.xhr.onload):
+ (requestBuilderList.xhr.onerror):
+ (isChromiumDepsFyiGpuTestRunner):
+ (isChromiumTipOfTreeGpuTestRunner):
+ (isChromiumDepsGTestRunner):
+ (isChromiumDepsCrosGTestRunner):
+ (isChromiumTipOfTreeGTestRunner):
+ (onBuilderListLoad):
+ (loadBuildersList):
+ * TestResultServer/static-dashboards/dashboard_base.js:
+ (parseCrossDashboardParameters):
+ (currentBuilderGroupCategory):
+ * TestResultServer/static-dashboards/flakiness_dashboard.html:
+ * TestResultServer/static-dashboards/flakiness_dashboard_tests.js:
+ (testHtmlForTestsWithExpectationsButNoFailures):
+ (testGenerateChromiumTipOfTreeGpuBuildersFromBuilderList):
+ (testGenerateChromiumDepsGTestBuildersFromBuilderList):
+ (testGenerateChromiumDepsCrosGTestBuildersFromBuilderList):
+ (testGenerateChromiumTipOfTreeGTestBuildersFromBuilderList):
+ * TestResultServer/static-dashboards/timeline_explorer.html:
+
2012-04-02 Ryosuke Niwa <rniwa@webkit.org>
Chromium testers should extract builds instead of building on their own
this.basePath = basePath;
}
-BuilderMaster.prototype.getLogPath = function(builder, buildNumber)
+BuilderMaster.prototype.logPath = function(builder, buildNumber)
{
- return this.basePath + builder + '/builds/' + buildNumber;
+ return this.basePath + 'builders/' + builder + '/builds/' + buildNumber;
};
-CHROMIUM_BUILDER_MASTER = new BuilderMaster('Chromium', 'http://build.chromium.org/p/chromium/builders/');
-CHROMIUMOS_BUILDER_MASTER = new BuilderMaster('ChromiumChromiumOS', 'http://build.chromium.org/p/chromium.chromiumos/builders/');
-CHROMIUM_GPU_BUILDER_MASTER = new BuilderMaster('ChromiumGPU', 'http://build.chromium.org/p/chromium.gpu/builders/');
-CHROMIUM_GPU_FYI_BUILDER_MASTER = new BuilderMaster('ChromiumGPUFYI', 'http://build.chromium.org/p/chromium.gpu.fyi/builders/');
-CHROMIUM_WEBKIT_BUILDER_MASTER = new BuilderMaster('ChromiumWebkit', 'http://build.chromium.org/p/chromium.webkit/builders/');
-WEBKIT_BUILDER_MASTER = new BuilderMaster('webkit.org', 'http://build.webkit.org/builders/');
+BuilderMaster.prototype.builderJsonPath = function()
+{
+ return this.basePath + 'json/builders';
+};
+
+CHROMIUM_BUILDER_MASTER = new BuilderMaster('Chromium', 'http://build.chromium.org/p/chromium/');
+CHROMIUMOS_BUILDER_MASTER = new BuilderMaster('ChromiumChromiumOS', 'http://build.chromium.org/p/chromium.chromiumos/');
+CHROMIUM_GPU_BUILDER_MASTER = new BuilderMaster('ChromiumGPU', 'http://build.chromium.org/p/chromium.gpu/');
+CHROMIUM_GPU_FYI_BUILDER_MASTER = new BuilderMaster('ChromiumGPUFYI', 'http://build.chromium.org/p/chromium.gpu.fyi/');
+CHROMIUM_WEBKIT_BUILDER_MASTER = new BuilderMaster('ChromiumWebkit', 'http://build.chromium.org/p/chromium.webkit/');
+WEBKIT_BUILDER_MASTER = new BuilderMaster('webkit.org', 'http://build.webkit.org/');
var LEGACY_BUILDER_MASTERS_TO_GROUPS = {
'Chromium': '@DEPS - chromium.org',
});
}
-function jsonRequest(url, onload, onerror)
+function requestBuilderList(builderGroups, builderFilter, master, groupName, groupEnum)
{
+ var onLoad = partial(onBuilderListLoad, builderGroups, builderFilter, master, groupName, groupEnum);
var xhr = new XMLHttpRequest();
+ var url = master.builderJsonPath();
xhr.open('GET', url, true);
xhr.onload = function() {
if (xhr.status == 200)
- onload(JSON.parse(xhr.response));
+ onLoad(JSON.parse(xhr.response));
else
- onerror(url);
+ onErrorLoadingBuilderList(url);
};
- xhr.onerror = function() { onerror(url); };
+ xhr.onerror = function() { onErrorLoadingBuilderList(url); };
xhr.send();
}
+function isChromiumDepsFyiGpuTestRunner(builder)
+{
+ // FIXME: This is kind of wonky, but there's not really a better pattern.
+ return builder.indexOf('(') != -1;
+}
+
+function isChromiumTipOfTreeGpuTestRunner(builder)
+{
+ return builder.indexOf('GPU') != -1;
+}
+
function isWebkitTestRunner(builder)
{
if (builder.indexOf('Tests') != -1) {
return builder.indexOf('Webkit') != -1 && builder.indexOf('Builder') == -1 && builder.indexOf('(deps)') != -1;
}
+function isChromiumDepsGTestRunner(builder)
+{
+ return builder.indexOf('Tests') != -1 && builder.indexOf('Chrome Frame') == -1;
+}
+
+function isChromiumDepsCrosGTestRunner(builder)
+{
+ return builder.indexOf('Tests') != -1;
+}
+
+function isChromiumTipOfTreeGTestRunner(builder)
+{
+ return !isChromiumTipOfTreeGpuTestRunner(builder) && builder.indexOf('Builder') == -1 && builder.indexOf('Perf') == -1 &&
+ builder.indexOf('Webkit') == -1 && builder.indexOf('Valgrind') == -1 && builder.indexOf('Chrome Frame') == -1;
+}
+
function generateBuildersFromBuilderList(builderList, filter)
{
return builderList.filter(filter).map(function(tester, index) {
});
}
-var WEBKIT_DOT_ORG_BUILDER_JSON_URL = 'http://build.webkit.org/json/builders';
-var CHROMIUM_CANARY_BUILDER_JSON_URL = 'http://build.chromium.org/p/chromium.webkit/json/builders';
-
-function onLayoutTestBuilderListLoad(builderFilter, master, groupName, groupEnum, json)
+function onBuilderListLoad(builderGroups, builderFilter, master, groupName, groupEnum, json)
{
var builders = generateBuildersFromBuilderList(Object.keys(json), builderFilter);
associateBuildersWithMaster(builders, master);
- LAYOUT_TESTS_BUILDER_GROUPS[groupName] = new BuilderGroup(BuilderGroup.groupEnum, builders);
+ builderGroups[groupName] = new BuilderGroup(BuilderGroup.groupEnum, builders);
g_handleBuildersListLoaded();
}
}
function loadBuildersList(group, testType) {
- if (testType != 'layout-tests') {
- // FIXME: Load builder lists for non-layout-tests dynamically as well.
- return;
+ if (testType == 'gpu_tests') {
+ switch(group) {
+ case '@DEPS FYI - chromium.org':
+ requestBuilderList(CHROMIUM_GPU_TESTS_BUILDER_GROUPS, isChromiumDepsFyiGpuTestRunner, CHROMIUM_GPU_FYI_BUILDER_MASTER, group, BuilderGroup.DEPS_WEBKIT);
+ break;
+
+ case '@ToT - chromium.org':
+ requestBuilderList(CHROMIUM_GPU_TESTS_BUILDER_GROUPS, isChromiumTipOfTreeGpuTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, group, BuilderGroup.TOT_WEBKIT);
+ break;
+ }
+ } else if (testType == 'layout-tests') {
+ switch(group) {
+ case '@ToT - chromium.org':
+ requestBuilderList(LAYOUT_TESTS_BUILDER_GROUPS, isChromiumWebkitTipOfTreeTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, group, BuilderGroup.TOT_WEBKIT);
+ break;
+
+ case '@ToT - webkit.org':
+ requestBuilderList(LAYOUT_TESTS_BUILDER_GROUPS, isWebkitTestRunner, WEBKIT_BUILDER_MASTER, group, BuilderGroup.TOT_WEBKIT);
+ break;
+
+ case '@DEPS - chromium.org':
+ requestBuilderList(LAYOUT_TESTS_BUILDER_GROUPS, isChromiumWebkitDepsTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, group, BuilderGroup.DEPS_WEBKIT);
+ break;
+ }
+ } else {
+ switch(group) {
+ case '@DEPS - chromium.org':
+ requestBuilderList(CHROMIUM_GTESTS_BUILDER_GROUPS, isChromiumDepsGTestRunner, CHROMIUM_BUILDER_MASTER, group, BuilderGroup.DEPS_WEBKIT);
+ break;
+
+ case '@DEPS CrOS - chromium.org':
+ requestBuilderList(CHROMIUM_GTESTS_BUILDER_GROUPS, isChromiumDepsCrosGTestRunner, CHROMIUMOS_BUILDER_MASTER, group, BuilderGroup.DEPS_WEBKIT);
+ break;
+
+ case '@ToT - chromium.org':
+ requestBuilderList(CHROMIUM_GTESTS_BUILDER_GROUPS, isChromiumTipOfTreeGTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, group, BuilderGroup.TOT_WEBKIT);
+ break;
+ }
}
- var onLoad, url;
- switch(group) {
- case '@ToT - chromium.org':
- onLoad = partial(onLayoutTestBuilderListLoad, isChromiumWebkitTipOfTreeTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, group, BuilderGroup.TOT_WEBKIT);
- url = CHROMIUM_CANARY_BUILDER_JSON_URL;
- break;
-
- case '@ToT - webkit.org':
- onLoad = partial(onLayoutTestBuilderListLoad, isWebkitTestRunner, WEBKIT_BUILDER_MASTER, group, BuilderGroup.TOT_WEBKIT);
- url = WEBKIT_DOT_ORG_BUILDER_JSON_URL;
- break;
-
- case '@DEPS - chromium.org':
- onLoad = partial(onLayoutTestBuilderListLoad, isChromiumWebkitDepsTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, group, BuilderGroup.DEPS_WEBKIT);
- url = CHROMIUM_CANARY_BUILDER_JSON_URL;
- break;
- }
-
- jsonRequest(url, onLoad, onErrorLoadingBuilderList);
}
var LAYOUT_TESTS_BUILDER_GROUPS = {
'@ToT - chromium.org': null,
'@ToT - webkit.org': null,
'@DEPS - chromium.org': null,
-}
-
-var CHROMIUM_GPU_GTESTS_DEPS_BUILDERS = [
- ['Win7 Release (NVIDIA)', BuilderGroup.DEFAULT_BUILDER],
- ['Win7 Debug (NVIDIA)'],
- ['Mac Release (Intel)'],
- ['Mac Debug (Intel)'],
- ['Linux Release (NVIDIA)'],
- ['Linux Debug (NVIDIA)'],
-];
-associateBuildersWithMaster(CHROMIUM_GPU_GTESTS_DEPS_BUILDERS, CHROMIUM_GPU_BUILDER_MASTER);
-
-var CHROMIUM_GPU_FYI_GTESTS_DEPS_BUILDERS = [
- ['Win7 Release (ATI)', BuilderGroup.DEFAULT_BUILDER],
- ['Win7 Release (Intel)'],
- ['WinXP Release (NVIDIA)'],
- ['WinXP Debug (NVIDIA)'],
- ['Mac Release (ATI)'],
- ['Linux Release (ATI)'],
- ['Linux Release (Intel)'],
- ['Win7 Audio'],
- ['Linux Audio'],
-];
-associateBuildersWithMaster(CHROMIUM_GPU_FYI_GTESTS_DEPS_BUILDERS, CHROMIUM_GPU_FYI_BUILDER_MASTER);
-
-var CHROMIUM_GPU_GTESTS_TOT_BUILDERS = [
- ['GPU Win7 (NVIDIA)', BuilderGroup.DEFAULT_BUILDER],
- ['GPU Win7 (dbg) (NVIDIA)'],
- ['GPU Mac'],
- ['GPU Mac (dbg)'],
- ['GPU Linux (NVIDIA)'],
- ['GPU Linux (dbg) (NVIDIA)'],
-];
-associateBuildersWithMaster(CHROMIUM_GPU_GTESTS_TOT_BUILDERS, CHROMIUM_WEBKIT_BUILDER_MASTER);
+};
var CHROMIUM_GPU_TESTS_BUILDER_GROUPS = {
- '@DEPS - chromium.org': new BuilderGroup(BuilderGroup.DEPS_WEBKIT, CHROMIUM_GPU_GTESTS_DEPS_BUILDERS),
- '@DEPS FYI - chromium.org': new BuilderGroup(BuilderGroup.DEPS_WEBKIT, CHROMIUM_GPU_FYI_GTESTS_DEPS_BUILDERS),
- '@ToT - chromium.org': new BuilderGroup(BuilderGroup.TOT_WEBKIT, CHROMIUM_GPU_GTESTS_TOT_BUILDERS)
+ '@DEPS FYI - chromium.org': null,
+ '@ToT - chromium.org': null,
};
-var CHROMIUM_GTESTS_DEPS_BUILDERS = [
- ['Win', BuilderGroup.DEFAULT_BUILDER],
- ['Mac'],
- ['Linux'],
- ['Linux x64'],
- ['XP Tests (1)'],
- ['XP Tests (2)'],
- ['XP Tests (3)'],
- ['Vista Tests (1)'],
- ['Vista Tests (2)'],
- ['Vista Tests (3)'],
- ['Win7 Tests (1)'],
- ['Win7 Tests (2)'],
- ['Win7 Tests (3)'],
- ['Win7 Sync'],
- ['XP Tests (dbg)(1)'],
- ['XP Tests (dbg)(2)'],
- ['XP Tests (dbg)(3)'],
- ['XP Tests (dbg)(4)'],
- ['XP Tests (dbg)(5)'],
- ['XP Tests (dbg)(6)'],
- ['Win7 Tests (dbg)(1)'],
- ['Win7 Tests (dbg)(2)'],
- ['Win7 Tests (dbg)(3)'],
- ['Win7 Tests (dbg)(4)'],
- ['Win7 Tests (dbg)(5)'],
- ['Win7 Tests (dbg)(6)'],
- ['Interactive Tests (dbg)'],
- ['Win Aura'],
- ['Mac10.5 Tests (1)'],
- ['Mac10.5 Tests (2)'],
- ['Mac10.5 Tests (3)'],
- ['Mac10.6 Tests (1)'],
- ['Mac10.6 Tests (2)'],
- ['Mac10.6 Tests (3)'],
- ['Mac10.6 Sync'],
- ['Mac 10.5 Tests (dbg)(1)'],
- ['Mac 10.5 Tests (dbg)(2)'],
- ['Mac 10.5 Tests (dbg)(3)'],
- ['Mac 10.5 Tests (dbg)(4)'],
- ['Mac 10.6 Tests (dbg)(1)'],
- ['Mac 10.6 Tests (dbg)(2)'],
- ['Mac 10.6 Tests (dbg)(3)'],
- ['Mac 10.6 Tests (dbg)(4)'],
- ['Linux Tests x64'],
- ['Linux Sync'],
- ['Linux Tests (dbg)(1)'],
- ['Linux Tests (dbg)(2)'],
- ['Linux Tests (dbg)(shared)'],
- ['Linux Tests (Aura dbg)'],
-];
-associateBuildersWithMaster(CHROMIUM_GTESTS_DEPS_BUILDERS, CHROMIUM_BUILDER_MASTER);
-
-var CHROMIUMOS_GTESTS_DEPS_BUILDERS = [
- ['Linux ChromiumOS Tests (1)', BuilderGroup.DEFAULT_BUILDER],
- ['Linux ChromiumOS Tests (2)'],
- ['Linux ChromiumOS Tests (dbg)(1)'],
- ['Linux ChromiumOS Tests (dbg)(2)'],
- ['Linux ChromiumOS Tests (dbg)(3)'],
-];
-associateBuildersWithMaster(CHROMIUMOS_GTESTS_DEPS_BUILDERS, CHROMIUMOS_BUILDER_MASTER);
-
-var CHROMIUM_GTESTS_TOT_BUILDERS = [
- ['Win (dbg)', BuilderGroup.DEFAULT_BUILDER],
- ['Mac10.6 Tests'],
- ['Linux Tests'],
-];
-associateBuildersWithMaster(CHROMIUM_GTESTS_TOT_BUILDERS, CHROMIUM_WEBKIT_BUILDER_MASTER);
-
var CHROMIUM_GTESTS_BUILDER_GROUPS = {
- '@DEPS - chromium.org': new BuilderGroup(BuilderGroup.DEPS_WEBKIT, CHROMIUM_GTESTS_DEPS_BUILDERS),
- '@DEPS CrOS - chromium.org': new BuilderGroup(BuilderGroup.DEPS_WEBKIT, CHROMIUMOS_GTESTS_DEPS_BUILDERS),
- '@ToT - chromium.org': new BuilderGroup(BuilderGroup.TOT_WEBKIT, CHROMIUM_GTESTS_TOT_BUILDERS),
+ '@DEPS - chromium.org': null,
+ '@DEPS CrOS - chromium.org': null,
+ '@ToT - chromium.org': null,
};
-
var TIMESTAMPS_KEY = 'secondsSinceEpoch';
var BUILD_NUMBERS_KEY = 'buildNumbers';
var TESTS_KEY = 'tests';
-var TWO_WEEKS_SECONDS = 60 * 60 * 24 * 14;
+var ONE_WEEK_SECONDS = 60 * 60 * 24 * 7;
// These should match the testtype uploaded to test-results.appspot.com.
// See http://test-results.appspot.com/testfile.
parseParameter(parameters, parameterName);
fillMissingValues(g_crossDashboardState, g_defaultCrossDashboardStateValues);
+ if (currentBuilderGroup() === undefined)
+ g_crossDashboardState.group = g_defaultCrossDashboardStateValues.group;
}
function parseDashboardSpecificParameters()
parseCrossDashboardParameters();
parseDashboardSpecificParameters();
+ parseParameter(queryHashAsMap(), 'builder');
var crossDashboardDiffState = diffStates(oldCrossDashboardState, g_crossDashboardState);
var dashboardSpecificDiffState = diffStates(oldDashboardSpecificState, g_currentState);
fillMissingValues(g_currentState, g_defaultDashboardSpecificStateValues);
-
- parseParameter(queryHashAsMap(), 'builder');
fillMissingValues(g_currentState, {'builder': g_defaultBuilderName});
+ // FIXME: dashboard_base shouldn't know anything about specific dashboard specific keys.
+ if (dashboardSpecificDiffState.builder)
+ delete g_currentState.tests;
+ if (g_currentState.tests)
+ delete g_currentState.builder;
+
// Some parameters require loading different JSON files when the value changes. Do a reload.
if (Object.keys(oldCrossDashboardState).length) {
for (var key in g_crossDashboardState) {
function currentBuilderGroupCategory()
{
- switch (g_crossDashboardState.testType) {
- case 'layout-tests':
- return LAYOUT_TESTS_BUILDER_GROUPS
- case 'gpu_tests':
- return CHROMIUM_GPU_TESTS_BUILDER_GROUPS
- case 'aura_unittests':
- case 'aura_shell_unittests':
- case 'base_unittests':
- case 'browser_tests':
- case 'cacheinvalidation_unittests':
- case 'compositor_unittests':
- case 'content_unittests':
- case 'courgette_unittests':
- case 'crypto_unittests':
- case 'googleurl_unittests':
- case 'gfx_unittests':
- case 'gpu_unittests':
- case 'installer_util_unittests':
- case 'interactive_ui_tests':
- case 'ipc_tests':
- case 'jingle_unittests':
- case 'media_unittests':
- case 'mini_installer_test':
- case 'nacl_ui_tests':
- case 'net_unittests':
- case 'printing_unittests':
- case 'remoting_unittests':
- case 'safe_browsing_tests':
- case 'sql_unittests':
- case 'sync_unit_tests':
- case 'sync_integration_tests':
- case 'test_shell_tests':
- case 'ui_tests':
- case 'unit_tests':
- case 'views_unittests':
- return CHROMIUM_GTESTS_BUILDER_GROUPS
- default:
- console.log('invalid testType parameter: ' + g_crossDashboardState.testType);
- }
+ if (g_crossDashboardState.testType == 'layout-tests')
+ return LAYOUT_TESTS_BUILDER_GROUPS;
+ if (g_crossDashboardState.testType == 'gpu_tests')
+ return CHROMIUM_GPU_TESTS_BUILDER_GROUPS;
+ return CHROMIUM_GTESTS_BUILDER_GROUPS;
}
function currentBuilderGroup()
// running that suite anymore.
// FIXME: Grab which bots run which tests directly from the buildbot JSON instead.
var lastRunSeconds = builds[builderName].secondsSinceEpoch[0];
- if ((Date.now() / 1000) - lastRunSeconds > TWO_WEEKS_SECONDS)
+ if ((Date.now() / 1000) - lastRunSeconds > ONE_WEEK_SECONDS)
continue;
if (json_version >= 4)
var buildNumber = g_resultsByBuilder[builder].buildNumbers[index];
var master = builderMaster(builder);
- var buildBasePath = master.getLogPath(builder, buildNumber);
+ var buildBasePath = master.logPath(builder, buildNumber);
html += '<ul><li>' + linkHTMLToOpenWindow(buildBasePath, 'Build log') +
'</li><li>' +
var failureIndex = indexesForFailures(builder, test)[0];
var buildNumber = g_resultsByBuilder[builder].buildNumbers[failureIndex];
- var pathToLog = builderMaster(builder).getLogPath(builder, buildNumber) + pathToFailureLog(test);
+ var pathToLog = builderMaster(builder).logPath(builder, buildNumber) + pathToFailureLog(test);
var chromeRevision = g_resultsByBuilder[builder].chromeRevision[failureIndex];
var builderName = builder.replace(/[^A-Za-z0-9 ]/g, '').replace(/ /g, '_');
// FIXME: This doesn't seem to work anymore. Did the paths change?
// Once that's resolved, see if we need to try each GTEST_MODIFIERS prefix as well.
var buildNumber = g_resultsByBuilder[builder].buildNumbers[failureIndexes[i]];
- var pathToLog = builderMaster(builder).getLogPath(builder, buildNumber) + pathToFailureLog(test);
+ var pathToLog = builderMaster(builder).logPath(builder, buildNumber) + pathToFailureLog(test);
appendNonWebKitResults(container, pathToLog, 'non-webkit-results');
}
}
g_currentState.showUnexpectedPasses = true;
g_currentState.showSkipped = true;
+
+ g_crossDashboardState.group = '@ToT - chromium.org';
+ g_crossDashboardState.testType = 'layout-tests';
var container = document.createElement('div');
container.innerHTML = htmlForTestsWithExpectationsButNoFailures(builder);
})
}
+function testGenerateChromiumDepsFyiGpuBuildersFromBuilderList()
+{
+ var builderList = ["Linux Audio", "Linux Release (ATI)", "Linux Release (Intel)", "Mac Release (ATI)", "Win7 Audio", "Win7 Release (ATI)", "Win7 Release (Intel)", "WinXP Debug (NVIDIA)", "WinXP Release (NVIDIA)"];
+ var expectedBuilders = [["Linux Release (ATI)", 2], ["Linux Release (Intel)"], ["Mac Release (ATI)"], ["Win7 Release (ATI)"], ["Win7 Release (Intel)"], ["WinXP Debug (NVIDIA)"], ["WinXP Release (NVIDIA)"] ];
+ generateBuildersFromBuilderListHelper(builderList, expectedBuilders, isChromiumDepsFyiGpuTestRunner);
+}
+
+function testGenerateChromiumTipOfTreeGpuBuildersFromBuilderList()
+{
+ var builderList = ["Chrome Frame Tests", "GPU Linux (NVIDIA)", "GPU Linux (dbg) (NVIDIA)", "GPU Mac", "GPU Mac (dbg)", "GPU Win7 (NVIDIA)", "GPU Win7 (dbg) (NVIDIA)", "Linux Perf",
+ "Linux Tests", "Linux Valgrind", "Mac Builder (dbg)", "Mac10.6 Perf", "Mac10.6 Tests", "Vista Perf", "Vista Tests", "Webkit Linux", "Webkit Linux (dbg)", "Webkit Linux (deps)",
+ "Webkit Linux 32", "Webkit Mac Builder", "Webkit Mac Builder (dbg)", "Webkit Mac Builder (deps)", "Webkit Mac10.5", "Webkit Mac10.5 (dbg)(1)", "Webkit Mac10.5 (dbg)(2)",
+ "Webkit Mac10.6", "Webkit Mac10.6 (dbg)", "Webkit Mac10.6 (deps)", "Webkit Mac10.7", "Webkit Vista", "Webkit Win", "Webkit Win (dbg)(1)", "Webkit Win (dbg)(2)",
+ "Webkit Win (deps)", "Webkit Win Builder", "Webkit Win Builder (dbg)", "Webkit Win Builder (deps)", "Webkit Win7", "Win (dbg)", "Win Builder"];
+ var expectedBuilders = [["GPU Linux (NVIDIA)", 2], ["GPU Linux (dbg) (NVIDIA)"], ["GPU Mac"], ["GPU Mac (dbg)"], ["GPU Win7 (NVIDIA)"], ["GPU Win7 (dbg) (NVIDIA)"]];
+ generateBuildersFromBuilderListHelper(builderList, expectedBuilders, isChromiumTipOfTreeGpuTestRunner);
+}
+
function testGenerateWebkitBuildersFromBuilderList()
{
var builderList = ["Chromium Android Release", "Chromium Linux Release", "Chromium Linux Release (Grid Layout)", "Chromium Linux Release (Perf)", "Chromium Linux Release (Tests)",
generateBuildersFromBuilderListHelper(builderList, expectedBuilders, isChromiumWebkitDepsTestRunner);
}
+function testGenerateChromiumDepsGTestBuildersFromBuilderList()
+{
+ var builderList = ["Android Builder", "Chrome Frame Tests (ie6)", "Chrome Frame Tests (ie7)", "Chrome Frame Tests (ie8)", "Interactive Tests (dbg)", "Linux", "Linux Builder (dbg)",
+ "Linux Builder (dbg)(shared)", "Linux Builder x64", "Linux Clang (dbg)", "Linux Sync", "Linux Tests (dbg)(1)", "Linux Tests (dbg)(2)", "Linux Tests (dbg)(shared)", "Linux Tests x64",
+ "Linux x64", "Mac", "Mac 10.5 Tests (dbg)(1)", "Mac 10.5 Tests (dbg)(2)", "Mac 10.5 Tests (dbg)(3)", "Mac 10.5 Tests (dbg)(4)", "Mac 10.6 Tests (dbg)(1)", "Mac 10.6 Tests (dbg)(2)",
+ "Mac 10.6 Tests (dbg)(3)", "Mac 10.6 Tests (dbg)(4)", "Mac Builder", "Mac Builder (dbg)", "Mac10.5 Tests (1)", "Mac10.5 Tests (2)", "Mac10.5 Tests (3)", "Mac10.6 Sync",
+ "Mac10.6 Tests (1)", "Mac10.6 Tests (2)", "Mac10.6 Tests (3)", "NACL Tests", "NACL Tests (x64)", "Vista Tests (1)", "Vista Tests (2)", "Vista Tests (3)", "Win", "Win Aura",
+ "Win Builder", "Win Builder (dbg)", "Win Builder 2010 (dbg)", "Win7 Sync", "Win7 Tests (1)", "Win7 Tests (2)", "Win7 Tests (3)", "Win7 Tests (dbg)(1)", "Win7 Tests (dbg)(2)",
+ "Win7 Tests (dbg)(3)", "Win7 Tests (dbg)(4)", "Win7 Tests (dbg)(5)", "Win7 Tests (dbg)(6)", "XP Tests (1)", "XP Tests (2)", "XP Tests (3)", "XP Tests (dbg)(1)", "XP Tests (dbg)(2)",
+ "XP Tests (dbg)(3)", "XP Tests (dbg)(4)", "XP Tests (dbg)(5)", "XP Tests (dbg)(6)"];
+ var expectedBuilders = [["Interactive Tests (dbg)", 2], ["Linux Tests (dbg)(1)"], ["Linux Tests (dbg)(2)"], ["Linux Tests (dbg)(shared)"], ["Linux Tests x64"], ["Mac 10.5 Tests (dbg)(1)"],
+ ["Mac 10.5 Tests (dbg)(2)"], ["Mac 10.5 Tests (dbg)(3)"], ["Mac 10.5 Tests (dbg)(4)"], ["Mac 10.6 Tests (dbg)(1)"], ["Mac 10.6 Tests (dbg)(2)"], ["Mac 10.6 Tests (dbg)(3)"],
+ ["Mac 10.6 Tests (dbg)(4)"], ["Mac10.5 Tests (1)"], ["Mac10.5 Tests (2)"], ["Mac10.5 Tests (3)"], ["Mac10.6 Tests (1)"], ["Mac10.6 Tests (2)"], ["Mac10.6 Tests (3)"], ["NACL Tests"],
+ ["NACL Tests (x64)"], ["Vista Tests (1)"], ["Vista Tests (2)"], ["Vista Tests (3)"], ["Win7 Tests (1)"], ["Win7 Tests (2)"], ["Win7 Tests (3)"], ["Win7 Tests (dbg)(1)"],
+ ["Win7 Tests (dbg)(2)"], ["Win7 Tests (dbg)(3)"], ["Win7 Tests (dbg)(4)"], ["Win7 Tests (dbg)(5)"], ["Win7 Tests (dbg)(6)"], ["XP Tests (1)"], ["XP Tests (2)"], ["XP Tests (3)"],
+ ["XP Tests (dbg)(1)"], ["XP Tests (dbg)(2)"], ["XP Tests (dbg)(3)"], ["XP Tests (dbg)(4)"], ["XP Tests (dbg)(5)"], ["XP Tests (dbg)(6)"]];
+ generateBuildersFromBuilderListHelper(builderList, expectedBuilders, isChromiumDepsGTestRunner);
+}
+
+function testGenerateChromiumDepsCrosGTestBuildersFromBuilderList()
+{
+ var builderList = ["ChromiumOS (amd64)", "ChromiumOS (arm)", "ChromiumOS (tegra2)", "ChromiumOS (x86)", "Linux ChromiumOS (Clang dbg)", "Linux ChromiumOS Builder", "Linux ChromiumOS Builder (dbg)",
+ "Linux ChromiumOS Tests (1)", "Linux ChromiumOS Tests (2)", "Linux ChromiumOS Tests (dbg)(1)", "Linux ChromiumOS Tests (dbg)(2)", "Linux ChromiumOS Tests (dbg)(3)"];
+ var expectedBuilders = [["Linux ChromiumOS Tests (1)", 2], ["Linux ChromiumOS Tests (2)"], ["Linux ChromiumOS Tests (dbg)(1)"], ["Linux ChromiumOS Tests (dbg)(2)"], ["Linux ChromiumOS Tests (dbg)(3)"]];
+ generateBuildersFromBuilderListHelper(builderList, expectedBuilders, isChromiumDepsCrosGTestRunner);
+}
+
+function testGenerateChromiumTipOfTreeGTestBuildersFromBuilderList()
+{
+ var builderList = ["Chrome Frame Tests", "GPU Linux (NVIDIA)", "GPU Linux (dbg) (NVIDIA)", "GPU Mac", "GPU Mac (dbg)", "GPU Win7 (NVIDIA)", "GPU Win7 (dbg) (NVIDIA)", "Linux Perf",
+ "Linux Tests", "Linux Valgrind", "Mac Builder (dbg)", "Mac10.6 Perf", "Mac10.6 Tests", "Vista Perf", "Vista Tests", "Webkit Linux", "Webkit Linux (dbg)", "Webkit Linux (deps)",
+ "Webkit Linux 32", "Webkit Mac Builder", "Webkit Mac Builder (dbg)", "Webkit Mac Builder (deps)", "Webkit Mac10.5", "Webkit Mac10.5 (dbg)(1)", "Webkit Mac10.5 (dbg)(2)",
+ "Webkit Mac10.6", "Webkit Mac10.6 (dbg)", "Webkit Mac10.6 (deps)", "Webkit Mac10.7", "Webkit Vista", "Webkit Win", "Webkit Win (dbg)(1)", "Webkit Win (dbg)(2)",
+ "Webkit Win (deps)", "Webkit Win Builder", "Webkit Win Builder (dbg)", "Webkit Win Builder (deps)", "Webkit Win7", "Win (dbg)", "Win Builder"];
+ var expectedBuilders = [['Linux Tests', BuilderGroup.DEFAULT_BUILDER], ['Mac10.6 Tests'], ['Vista Tests'], ['Win (dbg)']];
+ generateBuildersFromBuilderListHelper(builderList, expectedBuilders, isChromiumTipOfTreeGTestRunner);
+}
+
function assertObjectsDeepEqual(a, b)
{
assertEquals(Object.keys(a).length, Object.keys(b).length);
var buildNumber = results[BUILD_NUMBERS_KEY][index];
addRow('', '');
var master = builderMaster(builder);
- var buildUrl = master.getLogPath(builder, results[BUILD_NUMBERS_KEY][index]);
+ var buildUrl = master.logPath(builder, results[BUILD_NUMBERS_KEY][index]);
if (master == WEBKIT_BUILDER_MASTER) {
var resultsUrl = 'http://build.webkit.org/results/' + builder + '/r' + results[WEBKIT_REVISIONS_KEY][index] +
' (' + results[BUILD_NUMBERS_KEY][index] + ')';