summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorojan@chromium.org <ojan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-11 21:25:31 +0000
committerojan@chromium.org <ojan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-11 21:25:31 +0000
commit129ec2c380f143b8adfb9ab9d1bb7749ac59c642 (patch)
treeee85e9a6fe9f232c25b798d7b5be1860c74b95a2 /webkit
parent75dfc6719f1186089890acb239e829aa8c82b00c (diff)
downloadchromium_src-129ec2c380f143b8adfb9ab9d1bb7749ac59c642.zip
chromium_src-129ec2c380f143b8adfb9ab9d1bb7749ac59c642.tar.gz
chromium_src-129ec2c380f143b8adfb9ab9d1bb7749ac59c642.tar.bz2
A few more heuristic tweaks to missing/extra expectations in the dashboard.
1. Ignore results that start with no data. 2. Ignore times for runs that crash/timeout. We shouldn't mark a test slow because it's slow when it crashes or times out. 3. Make the default platform be WIN, not WIN-XP. This matches test_expectations.txt. 4. Remove the outdated code that tried to pretend IMAGE == IMAGE+TEXT. It's been long enough that we've had IMAGE+TEXT that we don't need to care about that. We still support that FAIL == IMAGE || TEXT || IMAGE+TEXT. Review URL: http://codereview.chromium.org/384052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31711 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/tools/layout_tests/flakiness_dashboard.html53
1 files changed, 39 insertions, 14 deletions
diff --git a/webkit/tools/layout_tests/flakiness_dashboard.html b/webkit/tools/layout_tests/flakiness_dashboard.html
index fb50602..0e30954 100644
--- a/webkit/tools/layout_tests/flakiness_dashboard.html
+++ b/webkit/tools/layout_tests/flakiness_dashboard.html
@@ -422,6 +422,7 @@
slowestTime: 0,
meetsExpectations: true,
isWontFixSkip: false,
+ isFlaky: false,
// Sorted string of missing expectations
missing: '',
// String of extra expectations (i.e. expectations that never occur).
@@ -457,7 +458,7 @@
// or build type, assume Windows Release.
var currentBuildUppercase = builderName.toUpperCase();
var platform = getMatchingElement(currentBuildUppercase, PLATFORMS) ||
- 'WIN-XP';
+ 'WIN';
var buildType = getMatchingElement(currentBuildUppercase, BUILD_TYPES) ||
'RELEASE';
perBuilderPlatformAndBuildType[builderName] = {platform: platform,
@@ -585,7 +586,7 @@
var maxTime = isDebug(resultsForTest.builder) ?
MIN_SECONDS_FOR_SLOW_TEST_DEBUG :
MIN_SECONDS_FOR_SLOW_TEST;
- return resultsForTest.slowestTime > maxTime;
+ return resultsForTest.slowestNonTimeoutCrashTime > maxTime;
}
function getAllTestsWithCondition(conditionFn) {
@@ -905,13 +906,33 @@
resultsForTest.flips = rawResults.length - 1;
var times = resultsByBuilder[builderName].tests[test].times;
+ var numTimesSeen = 0;
var numResultsSeen = 0;
+ var resultsIndex = 0;
+ var currentResult;
for (var i = 0;
- i < times.length && numResultsSeen < getMaxResults();
+ i < times.length && numTimesSeen < getMaxResults();
i++) {
- numResultsSeen += times[i][0];
- resultsForTest.slowestTime = Math.max(resultsForTest.slowestTime,
- times[i][1]);
+ numTimesSeen += times[i][0];
+
+ while (rawResults[resultsIndex] &&
+ numTimesSeen > (numResultsSeen + rawResults[resultsIndex][0])) {
+ numResultsSeen += rawResults[resultsIndex][0];
+ resultsIndex++;
+ }
+
+ if (rawResults && rawResults[resultsIndex])
+ currentResult = rawResults[resultsIndex][1];
+
+ time = times[i][1]
+
+ // Ignore times for crashing/timeout runs for the sake of seeing if
+ // a test should be marked slow.
+ if (currentResult != 'C' && currentResult != 'T') {
+ resultsForTest.slowestNonTimeoutCrashTime =
+ Math.max(resultsForTest.slowestNonTimeoutCrashTime, time);
+ }
+ resultsForTest.slowestTime = Math.max(resultsForTest.slowestTime, time);
}
processMissingAndExtraExpectations(resultsForTest);
@@ -940,11 +961,18 @@
// MIN_RUNS_FOR_FLAKE.
// This lets us rule out common cases of a test changing expectations for
// a few runs, then being fixed or otherwise modified in a non-flaky way.
+ var rawResults = resultsForTest.rawResults;
+
+ // If the first result is no-data that means the test is skipped or is
+ // being run on a different builder (e.g. moved from one shard to another).
+ // Ignore these results since we have no real data about what's going on.
+ if (rawResults[0][1] == 'N')
+ return;
+
var MIN_RUNS_FOR_FLAKE = 3;
var unexpectedExpectations = [];
var resultsMap = {}
var numResultsSeen = 0;
- var rawResults = resultsForTest.rawResults;
var haveSeenNonFlakeResult = false;
var numRealResults = 0;
@@ -989,9 +1017,6 @@
return false;
}
return true;
- } else if (currentState.legacyExpectationsSemantics &&
- element == 'IMAGE+TEXT') {
- element = 'IMAGE';
}
}
@@ -1010,11 +1035,11 @@
if (currentState.legacyExpectationsSemantics) {
if (expectation == 'FAIL') {
for (var j = 0; j < FAIL_RESULTS.length; j++) {
- if (result == FAIL_RESULTS[j])
+ if (result == FAIL_RESULTS[j]) {
hasExpectation = true;
+ break;
+ }
}
- } else if (result == 'IMAGE' && expectation == 'IMAGE+TEXT') {
- hasExpectation = true;
}
}
@@ -1122,7 +1147,7 @@
var buildNumbers = resultsByBuilder[builder].buildNumbers;
html += '<li>' +
getLinkHTMLToOpenWindow(BUILDERS_BASE_PATH + builder + '/builds/' +
- buildNumbers[index], 'Build log and blamelist') + '</li></ul>';
+ buildNumbers[index], 'Build log') + '</li></ul>';
showPopup(e, html);
}