Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(130)

Side by Side Diff: webkit/tools/layout_tests/flakiness_dashboard.html

Issue 340073: Layout test dashboard additions:... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/tools/layout_tests/dashboards/dashboard_base.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 1423 matching lines...) Expand 10 before | Expand all | Expand 10 after
1434 * uses which expectation. 1434 * uses which expectation.
1435 * 1435 *
1436 * @param {Object} expectationsContainers Map from expectations type to 1436 * @param {Object} expectationsContainers Map from expectations type to
1437 * container DIV. 1437 * container DIV.
1438 * @param {Element} parentContainer Container element for 1438 * @param {Element} parentContainer Container element for
1439 * expectationsContainer divs. 1439 * expectationsContainer divs.
1440 * @param {string} platform Platform string. "LayoutTests/" for non-platform 1440 * @param {string} platform Platform string. "LayoutTests/" for non-platform
1441 * specific expectations. 1441 * specific expectations.
1442 * @param {string} path Relative path to the expectation. 1442 * @param {string} path Relative path to the expectation.
1443 * @param {string} base Base path for the expectation URL. 1443 * @param {string} base Base path for the expectation URL.
1444 * @param {string} opt_suffix Suffix to place at the end of the path. 1444 * @param {string} suffix Suffix to place at the end of the path.
1445 * @param {string} opt_builder Builder whose actual results this expectation
1446 * points to.
1445 */ 1447 */
1446 function addExpectationItem(expectationsContainers, parentContainer, platform, 1448 function addExpectationItem(expectationsContainers, parentContainer, platform,
1447 path, base, opt_suffix) { 1449 path, base, suffix, opt_builder) {
1448 var fileExtension = getExtension(path); 1450 var fileExtension = getExtension(path);
1449 var container = getExpectationsContainer(expectationsContainers, 1451 var container = getExpectationsContainer(expectationsContainers,
1450 parentContainer, fileExtension); 1452 parentContainer, fileExtension);
1451 var isImage = path.match(/\.png$/); 1453 var isImage = path.match(/\.png$/);
1452 1454
1453 // TODO(ojan): Is there any way to do this that doesn't rely on script 1455 // TODO(ojan): Is there any way to do this that doesn't rely on script
1454 // tags? They spew a lot of errors to the console. 1456 // tags? They spew a lot of errors to the console.
1455 var dummyNode = document.createElement(isImage ? 'img' : 'script'); 1457 var dummyNode = document.createElement(isImage ? 'img' : 'script');
1456 var suffix = opt_suffix || '';
1457 var platformPart = platform ? ensureTrailingSlash(platform) : ''; 1458 var platformPart = platform ? ensureTrailingSlash(platform) : '';
1458 dummyNode.src = base + platformPart + path + suffix; 1459 dummyNode.src = base + platformPart + path + suffix;
1459 1460
1460 var childContainer = document.createElement('span'); 1461 var childContainer = document.createElement('span');
1461 childContainer.className = 'unloaded'; 1462 childContainer.className = 'unloaded';
1462 1463
1463 dummyNode.onload = function() { 1464 dummyNode.onload = function() {
1464 childContainer.appendChild(getExpectationsTitle(platform, path)); 1465 childContainer.appendChild(
1466 getExpectationsTitle(platform, path, opt_builder || ''));
1465 childContainer.className = 'expectations-item'; 1467 childContainer.className = 'expectations-item';
1466 1468
1467 var item; 1469 var item;
1468 if (isImage) { 1470 if (isImage) {
1469 item = dummyNode; 1471 item = dummyNode;
1470 } else { 1472 } else {
1471 item = document.createElement('iframe'); 1473 item = document.createElement('iframe');
1472 item.src = dummyNode.src; 1474 item.src = dummyNode.src;
1473 } 1475 }
1474 1476
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
1564 return revision; 1566 return revision;
1565 } 1567 }
1566 1568
1567 function addExpectations(expectationsContainers, container, base, imageBase, 1569 function addExpectations(expectationsContainers, container, base, imageBase,
1568 platform, text, checksum, png, textSuffix) { 1570 platform, text, checksum, png, textSuffix) {
1569 addExpectationItem(expectationsContainers, container, platform, text, base, 1571 addExpectationItem(expectationsContainers, container, platform, text, base,
1570 textSuffix); 1572 textSuffix);
1571 addExpectationItem(expectationsContainers, container, platform, checksum, 1573 addExpectationItem(expectationsContainers, container, platform, checksum,
1572 base, textSuffix); 1574 base, textSuffix);
1573 addExpectationItem(expectationsContainers, container, platform, png, 1575 addExpectationItem(expectationsContainers, container, platform, png,
1574 imageBase); 1576 imageBase, '');
1575 } 1577 }
1576 1578
1577 function getExpectationsTitle(platform, path) { 1579 function getExpectationsTitle(platform, path, builder) {
1578 var header = document.createElement('h3'); 1580 var header = document.createElement('h3');
1579 header.className = 'expectations-title'; 1581 header.className = 'expectations-title';
1580 1582
1581 var innerHTML; 1583 var innerHTML;
1582 if (platform == LAYOUT_TESTS_PREFIX) { 1584 if (builder) {
1585 innerHTML = 'ACTUAL RESULTS: ' + builder;
1586 } else if (platform == LAYOUT_TESTS_PREFIX) {
1583 var parts = path.split('/'); 1587 var parts = path.split('/');
1584 innerHTML = parts[parts.length - 1]; 1588 innerHTML = parts[parts.length - 1];
1585 } else { 1589 } else {
1586 innerHTML = platform || path; 1590 innerHTML = platform || path;
1587 } 1591 }
1588 1592
1589 header.innerHTML = '<div class=title>' + innerHTML + 1593 header.innerHTML = '<div class=title>' + innerHTML +
1590 '</div><div style="float:left">&nbsp;</div>' + 1594 '</div><div style="float:left">&nbsp;</div>' +
1591 '<div class=platforms style="float:right"></div>'; 1595 '<div class=platforms style="float:right"></div>';
1592 header.platform = platform; 1596 header.platform = platform;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1635 fallback, textWithoutPrefix, 1639 fallback, textWithoutPrefix,
1636 checksumWithoutPrefix, pngWithoutPrefix, textSuffixWebKit); 1640 checksumWithoutPrefix, pngWithoutPrefix, textSuffixWebKit);
1637 } 1641 }
1638 } else { 1642 } else {
1639 addExpectations(expectationsContainers, expectationsContainer, 1643 addExpectations(expectationsContainers, expectationsContainer,
1640 CHROME_TEST_BASE_URL, CHROME_TEST_BASE_URL, fallback, text, 1644 CHROME_TEST_BASE_URL, CHROME_TEST_BASE_URL, fallback, text,
1641 checksum, png, textSuffixChrome); 1645 checksum, png, textSuffixChrome);
1642 } 1646 }
1643 } 1647 }
1644 1648
1649 var actualResultSuffixes = ['-actual.txt', '-actual.checksum',
1650 '-actual.png', '-stack.png'];
1651
1652 for (var builder in builders) {
1653 var actualResultsBase =
1654 'http://build.chromium.org/buildbot/layout_test_results/' +
1655 builders[builder] + '/results/layout-test-results/';
1656 for (var i = 0; i < actualResultSuffixes.length; i++) {
1657 addExpectationItem(expectationsContainers, expectationsContainer, null,
1658 testWithoutSuffix + actualResultSuffixes[i], actualResultsBase, '',
1659 builder);
1660 }
1661 }
1662
1663
1645 // Add a clearing element so floated elements don't bleed out of their 1664 // Add a clearing element so floated elements don't bleed out of their
1646 // containing block. 1665 // containing block.
1647 var br = document.createElement('br'); 1666 var br = document.createElement('br');
1648 br.style.clear = 'both'; 1667 br.style.clear = 'both';
1649 expectationsContainer.appendChild(br); 1668 expectationsContainer.appendChild(br);
1650 } 1669 }
1651 1670
1652 var allFallbacks; 1671 var allFallbacks;
1653 1672
1654 /** 1673 /**
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1723 } 1742 }
1724 1743
1725 function getHTMLForIndividualTests(tests) { 1744 function getHTMLForIndividualTests(tests) {
1726 var testsHTML = []; 1745 var testsHTML = [];
1727 for (var i = 0; i < tests.length; i++) { 1746 for (var i = 0; i < tests.length; i++) {
1728 testsHTML.push('<h2 onclick="selectContents(this)">' + tests[i] + 1747 testsHTML.push('<h2 onclick="selectContents(this)">' + tests[i] +
1729 '</h2>' + getHTMLForIndividulTestOnAllBuilders(tests[i])); 1748 '</h2>' + getHTMLForIndividulTestOnAllBuilders(tests[i]));
1730 } 1749 }
1731 return testsHTML.join('<hr>'); 1750 return testsHTML.join('<hr>');
1732 } 1751 }
1752
1753 function getHTMLForCanaryLink(html, useWebKitCanary, useV8Canary) {
1754 var className = (currentState.useWebKitCanary == useWebKitCanary &&
1755 currentState.useV8Canary == useV8Canary) ? 'current-builder' : 'link';
1756 return '<span class=' + className +
1757 ' onClick="setState(\'useWebKitCanary\',' + useWebKitCanary +
arv (Not doing code reviews) 2009/11/03 18:22:33 onclick
1758 ',\'useV8Canary\',' + useV8Canary + ');window.location.reload()">' +
1759 html + '</span> | ';
1760 }
1733 1761
1734 function getHTMLForNavBar(opt_builderName) { 1762 function getHTMLForNavBar(opt_builderName) {
1735 var html = '<div id=builders>'; 1763 var html = '<div id=builders>';
1736 for (var builder in builders) { 1764 for (var builder in builders) {
1737 var className = builder == opt_builderName ? 'current-builder' : 'link'; 1765 var className = builder == opt_builderName ? 'current-builder' : 'link';
1738 html += '<span class=' + className + 1766 html += '<span class=' + className +
1739 ' onclick=\'setState("builder", "' + builder + '")\'>' + 1767 ' onclick=\'setState("builder", "' + builder + '")\'>' +
1740 builder + '</span>'; 1768 builder + '</span>';
1741 } 1769 }
1742 var canaryLink = '<span class=link onClick="setState(\'useWebKitCanary\',' +
1743 !currentState.useWebKitCanary + ');window.location.reload()">' +
1744 (currentState.useWebKitCanary ? 'Main builders' : 'WebKit.org Canary') +
1745 '</span>';
1746 1770
1747 return html + '</div>' + 1771 return html + '</div>' +
1748 '<form id=tests-form ' + 1772 '<form id=tests-form ' +
1749 'onsubmit="setState(\'tests\', tests.value);return false;">' + 1773 'onsubmit="setState(\'tests\', tests.value);return false;"><div>' +
1750 '<div>' + canaryLink + ' | <span class=link ' + 1774 getHTMLForCanaryLink('Main builders', false, false) +
1775 getHTMLForCanaryLink('WebKit.org Canary', true, false) +
1776 getHTMLForCanaryLink('V8 Canary', false, true) +
1777 '<span class=link ' +
1751 'onclick="setState(\'tests\', \'allIncorrectExpectations\')">' + 1778 'onclick="setState(\'tests\', \'allIncorrectExpectations\')">' +
1752 'All incorrect expectations</span> | '+ 1779 'All incorrect expectations</span> | '+
1753 '<span class=link ' + 1780 '<span class=link ' +
1754 'onclick="setState(\'tests\', \'allSlowTests\')">All SLOW' + 1781 'onclick="setState(\'tests\', \'allSlowTests\')">All SLOW' +
1755 '</span> | <span class=link ' + 1782 '</span> | <span class=link ' +
1756 'onclick="setState(\'tests\', \'allNeedSlowTests\')">All need ' + 1783 'onclick="setState(\'tests\', \'allNeedSlowTests\')">All need ' +
1757 'SLOW</span> | Show tests on all platforms: </div><input name=tests ' + 1784 'SLOW</span> | Show tests on all platforms: </div><input name=tests ' +
1758 'placeholder="Comma or space-separated list of tests or partial ' + 1785 'placeholder="Comma or space-separated list of tests or partial ' +
1759 'paths to show test results across all builders, e.g., ' + 1786 'paths to show test results across all builders, e.g., ' +
1760 'LayoutTests/foo/bar.html,LayoutTests/foo/baz,forms" ' + 1787 'LayoutTests/foo/bar.html,LayoutTests/foo/baz,forms" ' +
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
1943 hideLegend(); 1970 hideLegend();
1944 hidePopup(); 1971 hidePopup();
1945 } 1972 }
1946 }, false); 1973 }, false);
1947 1974
1948 </script> 1975 </script>
1949 </head> 1976 </head>
1950 1977
1951 <body></body> 1978 <body></body>
1952 </html> 1979 </html>
OLDNEW
« no previous file with comments | « webkit/tools/layout_tests/dashboards/dashboard_base.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698