Title: [88592] trunk/LayoutTests
Revision
88592
Author
[email protected]
Date
2011-06-10 21:05:53 -0700 (Fri, 10 Jun 2011)

Log Message

2011-06-10  Ryosuke Niwa  <[email protected]>

        Reviewed by Ojan Vafai.

        new-run-webkit-tests: results.html don't list the same list of failed tests as bots do
        https://bugs.webkit.org/show_bug.cgi?id=62425

        Fixed the bug by hiding expected crash, timeout, pass, etc... by default.

        * fast/harness/resources/results-test.js:
        * fast/harness/results-expected.txt:
        * fast/harness/results.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (88591 => 88592)


--- trunk/LayoutTests/ChangeLog	2011-06-11 03:36:15 UTC (rev 88591)
+++ trunk/LayoutTests/ChangeLog	2011-06-11 04:05:53 UTC (rev 88592)
@@ -1,3 +1,16 @@
+2011-06-10  Ryosuke Niwa  <[email protected]>
+
+        Reviewed by Ojan Vafai.
+
+        new-run-webkit-tests: results.html don't list the same list of failed tests as bots do
+        https://bugs.webkit.org/show_bug.cgi?id=62425
+
+        Fixed the bug by hiding expected crash, timeout, pass, etc... by default.
+
+        * fast/harness/resources/results-test.js:
+        * fast/harness/results-expected.txt:
+        * fast/harness/results.html:
+
 2011-06-10  Jer Noble  <[email protected]>
 
         Reviewed by Darin Adler.

Modified: trunk/LayoutTests/fast/harness/resources/results-test.js (88591 => 88592)


--- trunk/LayoutTests/fast/harness/resources/results-test.js	2011-06-11 03:36:15 UTC (rev 88591)
+++ trunk/LayoutTests/fast/harness/resources/results-test.js	2011-06-11 04:05:53 UTC (rev 88592)
@@ -432,6 +432,67 @@
         assertTrue(document.querySelector('tbody td:nth-child(3)').textContent == 'expected actual  diff ');
     }, '{"toggle-images":false,"unexpected-results":false}');
 
+    function enclosingNodeWithTagNameHasClassName(node, tagName, className) {
+        while (node && (!node.tagName || node.localName != tagName))
+            node = node.parentNode;
+        if (!node)
+            return false;
+        return node.className == className;
+    }
+
+    results = mockResults();
+    var subtree = results.tests['foo'] = {}
+    subtree['expected-to-pass-but-crashed.html'] = mockExpectation('PASS', 'CRASH');
+    subtree['expected-to-pass-or-crash-and-crashed.html'] = mockExpectation('PASS CRASH', 'CRASH');
+    subtree['expected-to-pass-but-timeouted.html'] = mockExpectation('PASS', 'CRASH');
+    subtree['expected-to-pass-or-timeout-and-timeouted.html'] = mockExpectation('PASS TIMEOUT', 'TIMEOUT');
+    subtree['expected-fail-but-passed.html'] = mockExpectation('FAIL', 'PASS');
+    subtree['expected-pass-or-fail-and-passed.html'] = mockExpectation('PASS FAIL', 'PASS');
+    runTest(results, function() {
+        assertTrue(!document.getElementById('results-table'));
+
+        var testLinks = document.querySelectorAll('.test-link');
+        assertTrue(testLinks[0].innerText == 'foo/expected-to-pass-but-crashed.html');
+        assertTrue(!enclosingNodeWithTagNameHasClassName(testLinks[0], 'tbody', 'expected'));
+        assertTrue(testLinks[1].innerText == 'foo/expected-to-pass-or-crash-and-crashed.html');
+        assertTrue(enclosingNodeWithTagNameHasClassName(testLinks[1], 'tbody', 'expected'));
+        assertTrue(!enclosingNodeWithTagNameHasClassName(testLinks[0], 'table', 'expected'));
+
+        assertTrue(testLinks[2].innerText == 'foo/expected-to-pass-but-timeouted.html');
+        assertTrue(!enclosingNodeWithTagNameHasClassName(testLinks[2], 'tbody', 'expected'));
+        assertTrue(testLinks[3].innerText == 'foo/expected-to-pass-or-timeout-and-timeouted.html');
+        assertTrue(enclosingNodeWithTagNameHasClassName(testLinks[3], 'tbody', 'expected'));
+        assertTrue(!enclosingNodeWithTagNameHasClassName(testLinks[2], 'table', 'expected'));
+
+        assertTrue(testLinks[4].innerText == 'foo/expected-fail-but-passed.html');
+        assertTrue(!enclosingNodeWithTagNameHasClassName(testLinks[4], 'tbody', 'expected'));
+        assertTrue(testLinks[5].innerText == 'foo/expected-pass-or-fail-and-passed.html');
+        assertTrue(enclosingNodeWithTagNameHasClassName(testLinks[5], 'tbody', 'expected'));
+        assertTrue(!enclosingNodeWithTagNameHasClassName(testLinks[4], 'table', 'expected'));
+    });
+
+    results = mockResults();
+    var subtree = results.tests['foo'] = {}
+    subtree['expected-to-pass-or-crash-and-crashed.html'] = mockExpectation('PASS CRASH', 'CRASH');
+    subtree['expected-to-pass-or-timeout-and-timeouted.html'] = mockExpectation('PASS TIMEOUT', 'TIMEOUT');
+    subtree['expected-pass-or-fail-and-passed.html'] = mockExpectation('PASS FAIL', 'PASS');
+    runTest(results, function() {
+        assertTrue(!document.getElementById('results-table'));
+
+        var testLinks = document.querySelectorAll('.test-link');
+        assertTrue(testLinks[0].innerText == 'foo/expected-to-pass-or-crash-and-crashed.html');
+        assertTrue(enclosingNodeWithTagNameHasClassName(testLinks[0], 'tbody', 'expected'));
+        assertTrue(enclosingNodeWithTagNameHasClassName(testLinks[0], 'table', 'expected'));
+
+        assertTrue(testLinks[1].innerText == 'foo/expected-to-pass-or-timeout-and-timeouted.html');
+        assertTrue(enclosingNodeWithTagNameHasClassName(testLinks[1], 'tbody', 'expected'));
+        assertTrue(enclosingNodeWithTagNameHasClassName(testLinks[1], 'table', 'expected'));
+
+        assertTrue(testLinks[2].innerText == 'foo/expected-pass-or-fail-and-passed.html');
+        assertTrue(enclosingNodeWithTagNameHasClassName(testLinks[2], 'tbody', 'expected'));
+        assertTrue(enclosingNodeWithTagNameHasClassName(testLinks[2], 'table', 'expected'));
+    });
+
     document.body.innerHTML = '<pre>' + g_log.join('\n') + '</pre>';
 }
 

Modified: trunk/LayoutTests/fast/harness/results-expected.txt (88591 => 88592)


--- trunk/LayoutTests/fast/harness/results-expected.txt	2011-06-11 03:36:15 UTC (rev 88591)
+++ trunk/LayoutTests/fast/harness/results-expected.txt	2011-06-11 04:05:53 UTC (rev 88592)
@@ -125,3 +125,29 @@
 TEST-28: PASS
 TEST-29: PASS
 TEST-29: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-30: PASS
+TEST-31: PASS
+TEST-31: PASS
+TEST-31: PASS
+TEST-31: PASS
+TEST-31: PASS
+TEST-31: PASS
+TEST-31: PASS
+TEST-31: PASS
+TEST-31: PASS
+TEST-31: PASS

Modified: trunk/LayoutTests/fast/harness/results.html (88591 => 88592)


--- trunk/LayoutTests/fast/harness/results.html	2011-06-11 03:36:15 UTC (rev 88591)
+++ trunk/LayoutTests/fast/harness/results.html	2011-06-11 04:05:53 UTC (rev 88592)
@@ -555,22 +555,34 @@
     }
 }
 
+function hasUnexpected(tests)
+{
+    return tests.some(function (test) { return !test.isExpected; });
+}
+
 function testList(tests, header, tableId)
 {
     tests.sort();
 
-    var html = '<p>' + header + '</p><table id="' + tableId + '">';
+    var html = '<p>' + header + ':</p><table id="' + tableId + '"';
+    if (!hasUnexpected(tests))
+        html += ' class=expected';
+    html += '>';
 
+    // FIXME: add the expected failure column for all the test lists if globalState().results.uses_expectations_file
     if (tableId == 'passes-table')
         html += '<thead><th>test</th><th>expected failure</th></thead>';
 
     for (var i = 0; i < tests.length; i++) {
         var testObject = tests[i];
         var test = testObject.name;
-        html += '<tbody><tr><td>';
+        html += '<tbody';
+        if (globalState().results.uses_expectations_file)
+            html += ' class="' + (testObject.isExpected ? 'expected' : '') + '"';
+        html += '><tr><td>';
         html += (tableId == 'passes-table') ? testLink(test) : testLinkWithExpandButton(test);
         html += '</td><td>';
-        
+
         if (tableId == 'stderr-table')
             html += resultLink(stripExtension(test), '-stderr.txt', 'stderr');
         else if (tableId == 'passes-table')
@@ -965,15 +977,11 @@
         return '';
 
     var tableRowHtml = '';
-    var hasUnexpected = false;
-    for (var i = 0; i < tests.length; i++) {
-        if (!tests[i].isExpected)
-            hasUnexpected = true;
+    for (var i = 0; i < tests.length; i++)
         tableRowHtml += tableRow(tests[i]);
-    }
 
     var header = '<div';
-    if (!hasUnexpected)
+    if (!hasUnexpected(tests))
         header += ' class=expected';
 
     header += '><p>' + title + ':</p>' +
@@ -1015,19 +1023,19 @@
         'Flaky tests (failed the first run and got a different result on retry)', 'flaky-tests-table');
 
     if (globalState().crashTests.length)
-        html += testList(globalState().crashTests, 'Tests that crashed:', 'crash-tests-table');
+        html += testList(globalState().crashTests, 'Tests that crashed', 'crash-tests-table');
 
     if (globalState().timeoutTests.length)
-        html += testList(globalState().timeoutTests, 'Tests that timed out:', 'timeout-tests-table');
+        html += testList(globalState().timeoutTests, 'Tests that timed out', 'timeout-tests-table');
 
     if (globalState().newTests.length)
-        html += testList(globalState().newTests, 'Tests that had no expected results (probably new):', 'new-tests-table');
+        html += testList(globalState().newTests, 'Tests that had no expected results (probably new)', 'new-tests-table');
 
     if (globalState().testsWithStderr.length)
-        html += testList(globalState().testsWithStderr, 'Tests that had stderr output:', 'stderr-table');
+        html += testList(globalState().testsWithStderr, 'Tests that had stderr output', 'stderr-table');
 
     if (globalState().results.uses_expectations_file && globalState().unexpectedPassTests.length)
-        html += testList(globalState().unexpectedPassTests, 'Tests expected to fail but passed:', 'passes-table');
+        html += testList(globalState().unexpectedPassTests, 'Tests expected to fail but passed', 'passes-table');
 
     if (globalState().hasHttpTests) {
         html += '<p>httpd access log: <a href="" +
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to