summaryrefslogtreecommitdiffstats
path: root/webkit/tools
diff options
context:
space:
mode:
authorojan@chromium.org <ojan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-06 22:54:28 +0000
committerojan@chromium.org <ojan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-06 22:54:28 +0000
commit2540d9ad9481d50512ff6b5075d163ffb1516db0 (patch)
tree539b0c89fc4548f953680b440c0c5cd8853bbbc4 /webkit/tools
parent7428d245ad019cc6d92098968e059416daecad8d (diff)
downloadchromium_src-2540d9ad9481d50512ff6b5075d163ffb1516db0.zip
chromium_src-2540d9ad9481d50512ff6b5075d163ffb1516db0.tar.gz
chromium_src-2540d9ad9481d50512ff6b5075d163ffb1516db0.tar.bz2
1. Add support to the dashboard for the webkit canaries.
2. Change hiding the WONTFIX test to also include SKIP tests. 3. Make the search case-insensitive and treat all paths as search queries. 4. If a test is expected to TIMEOUT, but never does, still mark it as needing SLOW if it takes >2 seconds to run. Review URL: http://codereview.chromium.org/260016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28173 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/tools')
-rw-r--r--webkit/tools/layout_tests/dashboards/dashboard_base.js56
-rw-r--r--webkit/tools/layout_tests/flakiness_dashboard.html31
2 files changed, 45 insertions, 42 deletions
diff --git a/webkit/tools/layout_tests/dashboards/dashboard_base.js b/webkit/tools/layout_tests/dashboards/dashboard_base.js
index b752726..d340218 100644
--- a/webkit/tools/layout_tests/dashboards/dashboard_base.js
+++ b/webkit/tools/layout_tests/dashboards/dashboard_base.js
@@ -77,6 +77,7 @@ function handleValidHashParameterWrapper(key, value) {
return true;
+ case 'useWebKitCanary':
case 'debug':
currentState[key] = value == 'true';
@@ -89,6 +90,7 @@ function handleValidHashParameterWrapper(key, value) {
var defaultCrossDashboardStateValues = {
testType: 'layout_test_results',
+ useWebKitCanary: false,
debug: false
}
@@ -101,6 +103,10 @@ function stringContains(a, b) {
return a.indexOf(b) != -1;
}
+function caseInsensitiveContains(a, b) {
+ return a.match(new RegExp(b, 'i'));
+}
+
function startsWith(a, b) {
return a.indexOf(b) == 0;
}
@@ -113,13 +119,6 @@ function trimString(str) {
return str.replace(/^\s+|\s+$/g, '');
}
-/**
- * Naive check that path points to a directory.
- */
-function isDirectory(path) {
- return !stringContains(path, '.')
-}
-
function validateParameter(state, key, value, validateFn) {
if (validateFn()) {
state[key] = value;
@@ -184,30 +183,39 @@ var currentState;
// Parse cross-dashboard parameters before using them.
parseParameters();
+var builders, builderBase;
if (currentState.debug) {
// In debug mode point to the results.json and expectations.json in the
// local tree. Useful for debugging changes to the python JSON generator.
- var builders = {'DUMMY_BUILDER_NAME': ''};
- var builderBase = '../../Debug/';
+ builders = {'DUMMY_BUILDER_NAME': ''};
+ builderBase = '../../Debug/';
} else {
// Map of builderName (the name shown in the waterfall)
// to builderPath (the path used in the builder's URL)
// TODO(ojan): Make this switch based off of the testType.
- var builders = {
- 'Webkit': 'webkit-rel',
- 'Webkit (dbg)(1)': 'webkit-dbg-1',
- 'Webkit (dbg)(2)': 'webkit-dbg-2',
- 'Webkit (dbg)(3)': 'webkit-dbg-3',
- 'Webkit Linux': 'webkit-rel-linux',
- 'Webkit Linux (dbg)(1)': 'webkit-dbg-linux-1',
- 'Webkit Linux (dbg)(2)': 'webkit-dbg-linux-2',
- 'Webkit Linux (dbg)(3)': 'webkit-dbg-linux-3',
- 'Webkit Mac10.5': 'webkit-rel-mac5',
- 'Webkit Mac10.5 (dbg)(1)': 'webkit-dbg-mac5-1',
- 'Webkit Mac10.5 (dbg)(2)': 'webkit-dbg-mac5-2',
- 'Webkit Mac10.5 (dbg)(3)': 'webkit-dbg-mac5-3'
- };
- var builderBase = 'http://build.chromium.org/buildbot/';
+ if (currentState.useWebKitCanary) {
+ builders = {
+ 'Webkit (webkit.org)': 'webkit-rel-webkit-org',
+ 'Webkit Linux (webkit.org)': 'webkit-rel-linux-webkit-org',
+ 'Webkit Mac (webkit.org)': 'webkit-rel-mac-webkit-org'
+ };
+ } else {
+ builders = {
+ 'Webkit': 'webkit-rel',
+ 'Webkit (dbg)(1)': 'webkit-dbg-1',
+ 'Webkit (dbg)(2)': 'webkit-dbg-2',
+ 'Webkit (dbg)(3)': 'webkit-dbg-3',
+ 'Webkit Linux': 'webkit-rel-linux',
+ 'Webkit Linux (dbg)(1)': 'webkit-dbg-linux-1',
+ 'Webkit Linux (dbg)(2)': 'webkit-dbg-linux-2',
+ 'Webkit Linux (dbg)(3)': 'webkit-dbg-linux-3',
+ 'Webkit Mac10.5': 'webkit-rel-mac5',
+ 'Webkit Mac10.5 (dbg)(1)': 'webkit-dbg-mac5-1',
+ 'Webkit Mac10.5 (dbg)(2)': 'webkit-dbg-mac5-2',
+ 'Webkit Mac10.5 (dbg)(3)': 'webkit-dbg-mac5-3'
+ };
+ }
+ builderBase = 'http://build.chromium.org/buildbot/';
}
// Append JSON script elements.
diff --git a/webkit/tools/layout_tests/flakiness_dashboard.html b/webkit/tools/layout_tests/flakiness_dashboard.html
index 052fad5..2cb3899 100644
--- a/webkit/tools/layout_tests/flakiness_dashboard.html
+++ b/webkit/tools/layout_tests/flakiness_dashboard.html
@@ -353,7 +353,7 @@
case 'showFlaky':
case 'showLargeExpectations':
case 'showSkipped':
- case 'showWontFix':
+ case 'showWontFixSkip':
currentState[key] = value == 'true';
return true;
@@ -370,7 +370,7 @@
showExpectations: false,
showFlaky: true,
showLargeExpectations: false,
- showWontFix: false,
+ showWontFixSkip: false,
showSkipped: false,
maxResults: 200
};
@@ -401,7 +401,7 @@
flips: 0,
slowestTime: 0,
meetsExpectations: true,
- isWontFix: false,
+ isWontFixSkip: false,
// Sorted string of missing expectations
missing: '',
// String of extra expectations (i.e. expectations that never occur).
@@ -491,15 +491,10 @@
var tests = [];
for (var i = 0; i < testList.length; i++) {
var path = testList[i];
- if (!isDirectory(path)) {
- tests.push(path);
- } else {
- // Loop over all tests and find the ones that are in the directory.
- var allTests = getAllTests();
- for (var test in allTests) {
- if (stringContains(test, path)) {
- tests.push(test);
- }
+ var allTests = getAllTests();
+ for (var test in allTests) {
+ if (caseInsensitiveContains(test, path)) {
+ tests.push(test);
}
}
}
@@ -622,7 +617,8 @@
resultsObj.bugs = bugs;
resultsObj.expectations = expectations;
resultsObj.modifiers = modifiers;
- resultsObj.isWontFix = stringContains(modifiers, 'WONTFIX');
+ resultsObj.isWontFixSkip = stringContains(modifiers, 'WONTFIX') ||
+ stringContains(modifiers, 'SKIP');
} else {
addHtmlToOptionsArrays(htmlArrays, expectations, modifiers, bugs,
false);
@@ -740,7 +736,7 @@
continue;
// Test has expectations, but no result in the builders results.
- // This means it's either SKIP or they pass on on builds.
+ // This means it's either SKIP or passes on all builds.
if (!allTestsForPlatformAndBuildType[test] &&
!stringContains(expectations.modifiers, 'WONTFIX')) {
if (stringContains(expectations.modifiers, 'SKIP')) {
@@ -837,8 +833,6 @@
// Also, if a test times out, then it should not be marked as slow.
if (resultsForTest.slowestTime > MIN_SECONDS_FOR_SLOW_TEST &&
!resultsMap['TIMEOUT'] &&
- (!resultsForTest.expectations ||
- !stringContains(resultsForTest.expectations, 'TIMEOUT')) &&
(!resultsForTest.modifiers ||
!stringContains(resultsForTest.modifiers, 'SLOW'))) {
missingExpectations.push('SLOW');
@@ -1071,7 +1065,7 @@
* Returns whether we should exclude test results from the test table.
*/
function shouldHideTest(testResult) {
- if (testResult.isWontFix && !currentState.showWontFix)
+ if (testResult.isWontFixSkip && !currentState.showWontFixSkip)
return true;
if (hasPassedInMaxRuns(testResult)) {
@@ -1607,7 +1601,8 @@
var html = getHTMLForNavBar(builderName) +
getHTMLForTestsWithExpectationsButNoFailures(builderName) +
'<h2>Failing tests</h2><div>' +
- getLinkHTMLToToggleState('showWontFix', 'WONTFIX tests') + ' | ' +
+ getLinkHTMLToToggleState('showWontFixSkip', 'WONTFIX/SKIP tests') +
+ ' | ' +
getLinkHTMLToToggleState('showCorrectExpectations',
'tests with correct expectations') + ' | ' +
getLinkHTMLToToggleState('showFlaky', 'flaky tests') + ' | ' +