OLD | NEW |
1 <!DOCTYPE HTML> | 1 <!DOCTYPE HTML> |
2 <html> | 2 <html> |
3 | 3 |
4 <head> | 4 <head> |
5 <title>Webkit Layout Test History</title> | 5 <title>Webkit Layout Test History</title> |
6 <style> | 6 <style> |
7 body { | 7 body { |
8 font-family: arial; | 8 font-family: arial; |
9 font-size: 13px; | 9 font-size: 13px; |
10 } | 10 } |
(...skipping 974 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
985 var rawResults = resultsForTest.rawResults; | 985 var rawResults = resultsForTest.rawResults; |
986 | 986 |
987 // If the first result is no-data that means the test is skipped or is | 987 // If the first result is no-data that means the test is skipped or is |
988 // being run on a different builder (e.g. moved from one shard to another). | 988 // being run on a different builder (e.g. moved from one shard to another). |
989 // Ignore these results since we have no real data about what's going on. | 989 // Ignore these results since we have no real data about what's going on. |
990 if (rawResults[0][1] == 'N') | 990 if (rawResults[0][1] == 'N') |
991 return; | 991 return; |
992 | 992 |
993 // Only consider flake if it doesn't happen twice in a row. | 993 // Only consider flake if it doesn't happen twice in a row. |
994 var MIN_RUNS_FOR_FLAKE = 2; | 994 var MIN_RUNS_FOR_FLAKE = 2; |
995 var unexpectedExpectations = []; | |
996 var resultsMap = {} | 995 var resultsMap = {} |
997 var numResultsSeen = 0; | 996 var numResultsSeen = 0; |
998 var haveSeenNonFlakeResult = false; | 997 var haveSeenNonFlakeResult = false; |
999 var numRealResults = 0; | 998 var numRealResults = 0; |
1000 var failedCount = 0; | 999 var failedCount = 0; |
1001 | 1000 |
1002 var seenResults = {}; | 1001 var seenResults = {}; |
1003 for (var i = 0; | 1002 for (var i = 0; |
1004 i < rawResults.length && numResultsSeen < getMaxResults(); | 1003 i < rawResults.length && numResultsSeen < getMaxResults(); |
1005 i++) { | 1004 i++) { |
(...skipping 18 matching lines...) Expand all Loading... |
1024 continue; | 1023 continue; |
1025 } | 1024 } |
1026 | 1025 |
1027 var expectation = getExpectationsFileStringForResult(result); | 1026 var expectation = getExpectationsFileStringForResult(result); |
1028 resultsMap[expectation] = true; | 1027 resultsMap[expectation] = true; |
1029 numRealResults++; | 1028 numRealResults++; |
1030 } | 1029 } |
1031 | 1030 |
1032 resultsForTest.isFlaky = numRealResults > 1; | 1031 resultsForTest.isFlaky = numRealResults > 1; |
1033 // Calculate the % of times the test failed - how flaky is it? | 1032 // Calculate the % of times the test failed - how flaky is it? |
1034 resultsForTest.percentFailed = Math.round(failedCount / numResultsSeen * 100
); | 1033 resultsForTest.percentFailed = |
| 1034 Math.round(failedCount / numResultsSeen * 100); |
1035 | 1035 |
1036 var expectationsArray = resultsForTest.expectations ? | 1036 var expectationsArray = resultsForTest.expectations ? |
1037 resultsForTest.expectations.split(' ') : []; | 1037 resultsForTest.expectations.split(' ') : []; |
1038 var extraExpectations = expectationsArray.filter( | 1038 var extraExpectations = expectationsArray.filter( |
1039 function(element) { | 1039 function(element) { |
1040 // TODO(ojan): Once all the FAIL lines are removed from | 1040 // TODO(ojan): Once all the FAIL lines are removed from |
1041 // test_expectations.txt, delete all the legacyExpectationsSemantics | 1041 // test_expectations.txt, delete all the legacyExpectationsSemantics |
1042 // code. | 1042 // code. |
1043 if (currentState.legacyExpectationsSemantics) { | 1043 if (currentState.legacyExpectationsSemantics) { |
1044 if (element == 'FAIL') { | 1044 if (element == 'FAIL') { |
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1482 } | 1482 } |
1483 | 1483 |
1484 for (var builder in builders) { | 1484 for (var builder in builders) { |
1485 var tests = perBuilderWithExpectationsButNoFailures[builder] | 1485 var tests = perBuilderWithExpectationsButNoFailures[builder] |
1486 for (var i = 0; i < tests.length; i++) { | 1486 for (var i = 0; i < tests.length; i++) { |
1487 addUpdate(testsNeedingUpdate, tests[i].test, builder, | 1487 addUpdate(testsNeedingUpdate, tests[i].test, builder, |
1488 null, tests[i].expectations + ' ' + tests[i].modifiers); | 1488 null, tests[i].expectations + ' ' + tests[i].modifiers); |
1489 } | 1489 } |
1490 } | 1490 } |
1491 | 1491 |
1492 appendHTML(JSON.stringify(testsNeedingUpdate)); | 1492 var confirmedTests = {}; |
1493 hideLoadingUI(); | 1493 var NUM_UPDATES_BEFORE_BREAK = 20; |
| 1494 var i = 0; |
| 1495 for (test in testsNeedingUpdate) { |
| 1496 i++ |
| 1497 // To maintain sanity when doing updates, give a chance to break out of |
| 1498 // the confirm loop every once in a while. |
| 1499 if (!(i % NUM_UPDATES_BEFORE_BREAK)) { |
| 1500 if (!confirm('Processed ' + i + |
| 1501 ' updates. Continue processing updates?')) |
| 1502 break; |
| 1503 } |
| 1504 |
| 1505 document.body.innerHTML = getHTMLForIndividulTestOnAllBuilders(test); |
| 1506 var confirmStr = 'Include this update?\n' + |
| 1507 JSON.stringify(testsNeedingUpdate[test], null, 4); |
| 1508 if (confirm(confirmStr)) { |
| 1509 confirmedTests[test] = testsNeedingUpdate[test]; |
| 1510 } |
| 1511 } |
| 1512 |
| 1513 document.body.innerHTML = JSON.stringify(confirmedTests); |
1494 } | 1514 } |
1495 | 1515 |
1496 function getHTMLForIndividulTestOnAllBuilders(test) { | 1516 function getHTMLForIndividulTestOnAllBuilders(test) { |
1497 createTableHeadersArray('builder'); | 1517 createTableHeadersArray('builder'); |
1498 processTestRunsForAllBuilders(); | 1518 processTestRunsForAllBuilders(); |
1499 | 1519 |
1500 var testResults = testToResultsMap[test]; | 1520 var testResults = testToResultsMap[test]; |
1501 var html = ''; | 1521 var html = ''; |
1502 if (testResults && testResults.length) { | 1522 if (testResults && testResults.length) { |
1503 var tracURL = TEST_URL_BASE_PATH + test | 1523 var tracURL = TEST_URL_BASE_PATH + test |
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2115 hideLegend(); | 2135 hideLegend(); |
2116 hidePopup(); | 2136 hidePopup(); |
2117 } | 2137 } |
2118 }, false); | 2138 }, false); |
2119 | 2139 |
2120 </script> | 2140 </script> |
2121 </head> | 2141 </head> |
2122 | 2142 |
2123 <body></body> | 2143 <body></body> |
2124 </html> | 2144 </html> |
OLD | NEW |