Changeset 85798 in webkit
- Timestamp:
- May 4, 2011 3:50:35 PM (13 years ago)
- Location:
- trunk/LayoutTests
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r85796 r85798 1 2011-05-04 Ojan Vafai <ojan@chromium.org> 2 3 Reviewed by Eric Seidel. 4 5 [results.html] put flaky tests into their own table 6 https://bugs.webkit.org/show_bug.cgi?id=60214 7 8 * fast/harness/resources/results-test.js: 9 * fast/harness/results-expected.txt: 10 * fast/harness/results.html: 11 1 12 2011-05-04 Ojan Vafai <ojan@chromium.org> 2 13 -
trunk/LayoutTests/fast/harness/resources/results-test.js
r85796 r85798 270 270 subtree['bar-flaky-fail.html'] = mockExpectation('PASS TEXT', 'IMAGE PASS'); 271 271 runTest(results, function() { 272 assertTrue(document.getElementById('results-table')); 272 assertTrue(!document.getElementById('results-table')); 273 assertTrue(document.getElementById('flaky-tests-table')); 273 274 assertTrue(document.body.textContent.indexOf('bar-flaky-fail.html') != -1); 275 }); 276 277 results = mockResults(); 278 var subtree = results.tests['foo'] = {} 279 subtree['bar-flaky-expected.html'] = mockExpectation('PASS FAIL', 'PASS TEXT'); 280 runTest(results, function() { 281 assertTrue(!document.getElementById('results-table')); 282 assertTrue(document.getElementById('flaky-tests-table')); 283 assertTrue(document.body.textContent.indexOf('bar-flaky-expected.html') != -1); 284 assertTrue(document.querySelector('tbody').className == 'expected'); 274 285 }); 275 286 … … 290 301 subtree['bar1.html'] = mockExpectation('CRASH', 'PASS'); 291 302 subtree['bar2.html'] = mockExpectation('IMAGE', 'PASS'); 303 subtree['flaky-fail.html'] = mockExpectation('PASS TEXT', 'IMAGE PASS'); 292 304 results.uses_expectations_file = false; 293 305 runTest(results, function() { … … 295 307 assertTrue(!document.querySelector('tbody.expected')); 296 308 assertTrue(!document.getElementById('passes-table')); 309 assertTrue(document.querySelectorAll('#flaky-tests-table tbody td').length == 4); 297 310 }); 298 311 -
trunk/LayoutTests/fast/harness/results-expected.txt
r85796 r85798 98 98 TEST-16: PASS 99 99 TEST-16: PASS 100 TEST-16: PASS 101 TEST-17: PASS 102 TEST-17: PASS 100 103 TEST-17: PASS 101 104 TEST-17: PASS 102 105 TEST-18: PASS 103 106 TEST-18: PASS 104 TEST-18: PASS 107 TEST-19: PASS 108 TEST-19: PASS 105 109 TEST-19: PASS 106 110 TEST-19: PASS … … 108 112 TEST-20: PASS 109 113 TEST-21: PASS 114 TEST-21: PASS 110 115 TEST-22: PASS 111 TEST-2 2: PASS116 TEST-23: PASS 112 117 TEST-23: PASS 113 118 TEST-24: PASS 114 119 TEST-25: PASS 115 120 TEST-26: PASS 116 TEST-26: PASS117 TEST-26: PASS118 121 TEST-27: PASS 119 122 TEST-27: PASS 123 TEST-27: PASS 124 TEST-28: PASS 125 TEST-28: PASS -
trunk/LayoutTests/fast/harness/results.html
r85796 r85798 153 153 g_state = { 154 154 crashTests: [], 155 flakyTests: [], 155 156 hasHttpTests: false, 156 157 hasImageFailures: false, … … 159 160 results: {}, 160 161 shouldToggleImages: true, 162 nonFlakyFailingTests: [], 161 163 testsWithStderr: [], 162 164 timeoutTests: [], … … 366 368 } 367 369 368 function testObjectFor(test)369 {370 var parts = test.split('/');371 var tree = globalState().results.tests;372 for (var i = 0; i < parts.length; i++) {373 if (parts[i] in tree)374 tree = tree[parts[i]];375 else {376 console.error('Test not in the results tree: ' + test);377 return null;378 }379 }380 return tree;381 }382 383 370 function processGlobalStateFor(testObject) 384 371 { 385 372 var test = testObject.name; 386 373 if (testObject.has_stderr) 387 globalState().testsWithStderr.push(test );374 globalState().testsWithStderr.push(testObject); 388 375 389 376 globalState().hasHttpTests = globalState().hasHttpTests || test.indexOf('http/') == 0; 390 377 391 var actual = testObject.actual; 378 var actual = testObject.actual; 392 379 if (actual == 'MISSING') { 393 380 // FIXME: make sure that new-run-webkit-tests spits out an -actual.txt file for 394 381 // tests with MISSING results. 395 globalState().newTests.push(test );382 globalState().newTests.push(testObject); 396 383 return; 397 384 } … … 411 398 } 412 399 413 if (actual == 'PASS' && expected != 'PASS') 414 globalState().unexpectedPassTests.push(test); 415 416 if (globalState().results.uses_expectations_file && testObject.isExpected) 417 return; 418 419 // FIXME: Show some indication in the UI for a test that doesn't crash on the first run but crashes on the second run. 420 if (actual.indexOf('CRASH') != -1) { 421 globalState().crashTests.push(test); 422 return; 423 } 424 425 // FIXME: Show some indication in the UI for a test only times out on one run? 426 if (actual.indexOf('TIMEOUT') != -1) 427 globalState().timeoutTests.push(test); 400 if (actual.indexOf(' ') != -1) { 401 globalState().flakyTests.push(testObject); 402 return; 403 } 404 405 if (actual == 'PASS' && expected != 'PASS') { 406 globalState().unexpectedPassTests.push(testObject); 407 return; 408 } 409 410 if (actual == 'CRASH' && expected != 'CRASH') { 411 globalState().crashTests.push(testObject); 412 return; 413 } 414 415 if (actual == 'TIMEOUT' && expected != 'TIMEOUT') { 416 globalState().timeoutTests.push(testObject); 417 return; 418 } 419 420 globalState().nonFlakyFailingTests.push(testObject); 428 421 } 429 422 … … 511 504 row += '</td>'; 512 505 506 if (globalState().results.uses_expectations_file || actual.indexOf(' ') != -1) 507 row += '<td>' + actual + '</td>'; 508 513 509 if (globalState().results.uses_expectations_file) 514 row += '<td>' + actual + '</td><td>' +testObject.expected + '</td>';510 row += '<td>' + testObject.expected + '</td>'; 515 511 516 512 row += '</tr></tbody>'; … … 534 530 } 535 531 536 function tableRows()537 {538 var html = '';539 forEachTest(function(testObject) {540 processGlobalStateFor(testObject)541 var test = testObject.name;542 if (globalState().unexpectedPassTests.indexOf(test) == -1 &&543 globalState().newTests.indexOf(test) == -1 &&544 globalState().crashTests.indexOf(test) == -1 &&545 globalState().timeoutTests.indexOf(test) == -1)546 html += tableRow(testObject);547 });548 return html;549 }550 551 532 function testList(tests, header, tableId) 552 533 { … … 559 540 560 541 for (var i = 0; i < tests.length; i++) { 561 var test = tests[i]; 542 var testObject = tests[i]; 543 var test = testObject.name; 562 544 html += '<tbody><tr><td>'; 563 545 html += (tableId == 'passes-table') ? testLink(test) : testLinkWithExpandButton(test); … … 567 549 html += resultLink(stripExtension(test), '-stderr.txt', 'stderr'); 568 550 else if (tableId == 'passes-table') 569 html += testObject For(test).expected;551 html += testObject.expected; 570 552 else if (tableId == 'crash-tests-table') 571 553 html += resultLink(stripExtension(test), '-stack.txt', 'crash stack'); … … 574 556 html += textResultLinks(stripExtension(test)); 575 557 } else if (tableId == 'new-tests-table') { 576 var testObject = testObjectFor(test);577 558 if (testObject.is_missing_audio) 578 559 html += resultLink(stripExtension(test), '-actual.wav', 'audio result'); … … 911 892 document.addEventListener('mousedown', handleMouseDown, false); 912 893 894 function failingTestsTable(tests, title, id) 895 { 896 if (!tests.length) 897 return ''; 898 899 var html = '<p>' + title + ':</p>' + 900 '<table id="' + id + '"><thead><tr>' + 901 '<th>test</th>' + 902 '<th id="text-results-header">results</th>' + 903 '<th id="image-results-header">image results</th>'; 904 905 if (globalState().results.uses_expectations_file) 906 html += '<th>actual failure</th><th>expected failure</th>'; 907 908 if (id == 'flaky-tests-table') 909 html += '<th>failures</th>'; 910 911 html += '</tr></thead>'; 912 913 for (var i = 0; i < tests.length; i++) 914 html += tableRow(tests[i]); 915 916 return html + '</table>'; 917 } 918 919 913 920 function generatePage() 914 921 { 922 forEachTest(processGlobalStateFor); 923 915 924 var html = '<div id=toolbar>' + 916 925 '<a href="javascript:void()" onclick="expandAllExpectations()">expand all</a> ' + … … 922 931 '</div></div>'; 923 932 924 var tableRowsHtml = tableRows(); 925 926 if (tableRowsHtml) { 927 html += '<p>Tests where results did not match expected results:</p>' + 928 '<table id="results-table"><thead><tr>' + 929 '<th>test</th>' + 930 '<th id="text-results-header">results</th>' + 931 '<th id="image-results-header">image results</th>'; 932 933 if (globalState().results.uses_expectations_file) 934 html += '<th>actual failure</th><th>expected failure</th>'; 935 936 html += '</tr></thead>' + tableRowsHtml + '</table>'; 937 } 933 html += failingTestsTable(globalState().nonFlakyFailingTests, 934 'Tests where results did not match expected results', 'results-table'); 935 936 html += failingTestsTable(globalState().flakyTests, 937 'Flaky tests (failed the first run and got a different result on retry)', 'flaky-tests-table'); 938 938 939 939 if (globalState().crashTests.length)
Note: See TracChangeset
for help on using the changeset viewer.