Changeset 116599 in webkit
- Timestamp:
- May 9, 2012 8:08:02 PM (12 years ago)
- Location:
- trunk/Tools
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js
r97192 r116599 42 42 } 43 43 44 function isStepRequredForTestCoverage(step)45 {46 switch(step.name) {47 case kUpdateStepName:48 case kUpdateScriptsStepName:49 case kCompileStepName:50 case kWebKitTestsStepName:51 return true;52 default:53 return false;54 }55 }56 57 44 function didFail(step) 58 45 { … … 61 48 return step.text.indexOf(kCrashedOrHungOutputMarker) != -1; 62 49 } 63 // FIXME: Is this the correct way to test for failure?64 50 return step.results[0] > 0; 65 51 } 66 52 67 function didFailStepRequredForTestCoverage(buildInfo)53 function failingSteps(buildInfo) 68 54 { 69 return buildInfo.steps.filter( isStepRequredForTestCoverage).filter(didFail).length > 0;55 return buildInfo.steps.filter(didFail); 70 56 } 71 57 … … 91 77 function fetchMostRecentBuildInfoByBuilder(callback) 92 78 { 93 var buildInfoByBuilder = {};94 var builderNames = Object.keys(config.kBuilders);95 var requestTracker = new base.RequestTracker(builderNames.length, callback, [buildInfoByBuilder]);96 79 net.get(kChromiumBuildBotURL + '/json/builders', function(builderStatus) { 97 $.each(builderNames, function(index, builderName) { 80 var buildInfoByBuilder = {}; 81 var builderNames = Object.keys(builderStatus); 82 var requestTracker = new base.RequestTracker(builderNames.length, callback, [buildInfoByBuilder]); 83 builderNames.forEach(function(builderName) { 84 // FIXME: Should garden-o-matic show these? I can imagine showing the deps bots being useful at least so 85 // that the gardener only need to look at garden-o-matic and never at the waterfall. Not really sure who 86 // watches the GPU bots. 87 if (builderName.indexOf('GPU') != -1 || builderName.indexOf('deps') != -1) { 88 requestTracker.requestComplete(); 89 return; 90 } 91 98 92 var buildNumber = mostRecentCompletedBuildNumber(builderStatus[builderName]); 99 93 if (!buildNumber) { … … 111 105 } 112 106 113 builders.buildersFailing StepRequredForTestCoverage= function(callback)107 builders.buildersFailingNonLayoutTests = function(callback) 114 108 { 115 109 fetchMostRecentBuildInfoByBuilder(function(buildInfoByBuilder) { 116 var builderNameList = [];110 var failureList = {}; 117 111 $.each(buildInfoByBuilder, function(builderName, buildInfo) { 118 112 if (!buildInfo) 119 113 return; 120 if (didFailStepRequredForTestCoverage(buildInfo)) 121 builderNameList.push(builderName); 114 var failures = failingSteps(buildInfo); 115 if (failures.length) 116 failureList[builderName] = failures.map(function(failure) { return failure.name; }); 122 117 }); 123 callback( builderNameList);118 callback(failureList); 124 119 }); 125 120 }; -
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js
r104423 r116599 583 583 }; 584 584 585 test("buildersFailing StepRequredForTestCoverage", 3, function() {585 test("buildersFailing", 3, function() { 586 586 var simulator = new NetworkSimulator(); 587 587 … … 609 609 610 610 simulator.runTest(function() { 611 builders.buildersFailingStepRequredForTestCoverage(function(builderNameList) { 612 deepEqual(builderNameList, ["Webkit Mac10.6"]); 611 builders.buildersFailingNonLayoutTests(function(builderNameList) { 612 deepEqual(builderNameList, { 613 "Webkit Linux": [ 614 "webkit_gpu_tests" 615 ], 616 "Webkit Mac10.6": [ 617 "compile", 618 "webkit_gpu_tests" 619 ] 620 }); 613 621 }); 614 622 }); … … 621 629 }); 622 630 623 test("buildersFailing StepRequredForTestCoverage(run-webkit-tests crash)", 3, function() {631 test("buildersFailing (run-webkit-tests crash)", 3, function() { 624 632 var simulator = new NetworkSimulator(); 625 633 … … 649 657 650 658 simulator.runTest(function() { 651 builders.buildersFailingStepRequredForTestCoverage(function(builderNameList) { 652 deepEqual(builderNameList, ["Webkit Linux"]); 659 builders.buildersFailingNonLayoutTests(function(builderNameList) { 660 deepEqual(builderNameList, { 661 "Webkit Linux": [ 662 "extract_build", 663 "webkit_tests", 664 "archive_webkit_tests_results", 665 "webkit_gpu_tests", 666 "archive_webkit_tests_gpu_results" 667 ] 668 }); 653 669 }); 654 670 }); -
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js
r110739 r116599 45 45 }; 46 46 47 config.kBuildersThatOnlyCompile = [48 'Webkit Win Builder',49 'Webkit Win Builder (dbg)',50 // FIXME: Where is the Linux Builder?51 'Webkit Mac Builder',52 'Webkit Mac Builder (dbg)',53 'Win Builder',54 ];55 56 47 config.kTracURL = 'http://trac.webkit.org'; 57 48 config.kBugzillaURL = 'https://bugs.webkit.org'; -
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js
r112149 r116599 288 288 this._notification = null; 289 289 }, 290 update: function( builderNameList)291 { 292 if ( builderNameList.length == 0) {290 update: function(failuresList) 291 { 292 if (Object.keys(failuresList).length == 0) { 293 293 if (this._notification) { 294 294 this._notification.dismiss(); … … 303 303 // FIXME: We should provide regression ranges for the failing builders. 304 304 // This doesn't seem to happen often enough to worry too much about that, however. 305 this._notification.setFailingBuilders( builderNameList);305 this._notification.setFailingBuilders(failuresList); 306 306 } 307 307 }); -
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/garden-o-matic.js
r116483 r116599 35 35 var g_failuresController = null; 36 36 37 var g_ losingTestCoverageBuilders = null;37 var g_nonLayoutTestFailureBuilders = null; 38 38 39 39 function update() … … 52 52 g_info.add(updating); 53 53 54 builders.buildersFailing StepRequredForTestCoverage(g_losingTestCoverageBuilders.update.bind(g_losingTestCoverageBuilders));54 builders.buildersFailingNonLayoutTests(g_nonLayoutTestFailureBuilders.update.bind(g_nonLayoutTestFailureBuilders)); 55 55 56 56 base.callInParallel([model.updateRecentCommits, model.updateResultsByBuilder], function() { … … 91 91 { 92 92 var resultsContainer = onebar.results(); 93 console.log(resultsContainer);94 93 $(resultsContainer).empty().append(resultsView); 95 94 onebar.select('results'); … … 101 100 102 101 g_info = new ui.notifications.Stream(); 103 g_ losingTestCoverageBuilders = new controllers.FailingBuilders(g_info, 'Losing test coverage');102 g_nonLayoutTestFailureBuilders = new controllers.FailingBuilders(g_info, 'Non-layout test failures'); 104 103 105 104 // FIXME: This should be an Action object. -
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js
r116483 r116599 56 56 } 57 57 58 ui.urlForChromiumGtestSummary = function()59 {60 return 'http://build.chromium.org/p/chromium.webkit/horizontal_one_box_per_builder?' +61 'builder=Win%20Builder' +62 '&builder=Win%20Reliability%20Builder' +63 '&builder=Vista%20Tests&builder=Win%20Reliability' +64 '&builder=Win+(dbg)' +65 '&builder=Win%20Shared%20Builder%20%28dbg%29' +66 '&builder=Mac10.6%20Tests' +67 '&builder=Mac+Builder+(dbg)' +68 '&builder=Linux%20Tests' +69 '&builder=Linux%20Valgrind' +70 '&builder=Vista%20Perf' +71 '&builder=Linux%20Perf' +72 '&builder=Mac10.6%20Perf';73 }74 75 58 ui.rolloutReasonForTestNameList = function(testNameList) 76 59 { … … 92 75 '<div id="unexpected"></div>' + 93 76 '<div id="expected"></div>' + 94 '<div id="results"></div>' + 95 '<div id="chromium-gtests"><span id="gtest-label">Chromium gtest bots:</span>' + 96 '<iframe scrolling="no" src="' + ui.urlForChromiumGtestSummary() + '"></iframe>' + 97 '</div>'; 77 '<div id="results"></div>'; 98 78 this._tabNames = [ 99 79 'unexpected', … … 101 81 'results', 102 82 ] 83 103 84 this._tabIndexToSavedScrollOffset = {}; 104 85 this._tabs = $(this).tabs({ -
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures.js
r106739 r116599 32 32 33 33 ui.failures.Builder = base.extends('a', { 34 init: function(builderName )34 init: function(builderName, failures) 35 35 { 36 36 var configuration = config.kBuilders[builderName]; 37 if (configuration.version) 38 this._addSpan('version', configuration.version); 39 if (configuration.is64bit) 40 this._addSpan('architecture', '64-bit'); 41 this._configuration = configuration; 37 if (configuration) { 38 if (configuration.version) 39 this._addSpan('version', configuration.version); 40 if (configuration.is64bit) 41 this._addSpan('architecture', '64-bit'); 42 this._configuration = configuration; 43 } else 44 this._addSpan('version', builderName); 45 42 46 this.className = 'failing-builder'; 43 47 this.target = '_blank'; 44 48 this.href = ui.displayURLForBuilder(builderName); 49 if (failures) 50 this._addSpan('failures', ' ' + failures.join(', ')); 45 51 }, 46 52 _addSpan: function(className, text) … … 52 58 equals: function(configuration) 53 59 { 54 return this._configuration .is64bit == configuration.is64bit && this._configuration.version == configuration.version;60 return this._configuration && this._configuration.is64bit == configuration.is64bit && this._configuration.version == configuration.version; 55 61 } 56 62 }); -
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures_unittests.js
r112355 r116599 28 28 module('ui.failures'); 29 29 30 test('Builder', 7, function() { 31 raises(function() { 32 new ui.failures.Builder(); 33 }); 34 30 test('Builder', 6, function() { 35 31 var configuration; 36 configuration = new ui.failures.Builder("Webkit Linux" );32 configuration = new ui.failures.Builder("Webkit Linux", ["update", "webkit_tests"]); 37 33 deepEqual(Object.getOwnPropertyNames(configuration.__proto__).sort(), [ 38 34 '_addSpan', … … 40 36 'init', 41 37 ]); 42 equal(configuration.outerHTML, '<a class="failing-builder" target="_blank" href="http://build.chromium.org/p/chromium.webkit/waterfall?builder=Webkit+Linux"><span class="version">lucid</span><span class="architecture">64-bit</span>< /a>');38 equal(configuration.outerHTML, '<a class="failing-builder" target="_blank" href="http://build.chromium.org/p/chromium.webkit/waterfall?builder=Webkit+Linux"><span class="version">lucid</span><span class="architecture">64-bit</span><span class="failures"> update, webkit_tests</span></a>'); 43 39 configuration = new ui.failures.Builder("Webkit Win"); 44 40 equal(configuration.outerHTML, '<a class="failing-builder" target="_blank" href="http://build.chromium.org/p/chromium.webkit/waterfall?builder=Webkit+Win"><span class="version">xp</span></a>'); -
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js
r106739 r116599 244 244 this._problem.insertBefore(document.createTextNode(message + ':'), this._problem.firstChild); 245 245 }, 246 setFailingBuilders: function( builderNameList)247 { 248 $(this._effects).empty().append( builderNameList.map(function(builderName) {246 setFailingBuilders: function(failuresList) 247 { 248 $(this._effects).empty().append(Object.keys(failuresList).map(function(builderName) { 249 249 var effect = document.createElement('li'); 250 250 effect.className = 'builder'; 251 effect.appendChild(new ui.failures.Builder(builderName ));251 effect.appendChild(new ui.failures.Builder(builderName, failuresList[builderName])); 252 252 return effect; 253 253 })); -
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js
r111228 r116599 319 319 test('BuildersFailing', 1, function() { 320 320 var builderFailing = new ui.notifications.BuildersFailing('Disasterifying'); 321 builderFailing.setFailingBuilders( ['Webkit Linux', 'Webkit Vista']);321 builderFailing.setFailingBuilders({'Webkit Linux': ['compile'], 'Webkit Vista': ['webkit_tests', 'update']); 322 322 equal(builderFailing.innerHTML, 323 323 '<div class="how">' + -
trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js
r116483 r116599 62 62 '<div id="unexpected" class="ui-tabs-panel ui-widget-content ui-corner-bottom"></div>' + 63 63 '<div id="expected" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"></div>' + 64 '<div id="results" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"></div>' + 65 '<div id="chromium-gtests"><span id="gtest-label">Chromium gtest bots:</span>' + 66 '<iframe scrolling="no" src="http://build.chromium.org/p/chromium.webkit/horizontal_one_box_per_builder?' + 67 'builder=Win%20Builder' + 68 '&builder=Win%20Reliability%20Builder' + 69 '&builder=Vista%20Tests' + 70 '&builder=Win%20Reliability' + 71 '&builder=Win+(dbg)' + 72 '&builder=Win%20Shared%20Builder%20%28dbg%29' + 73 '&builder=Mac10.6%20Tests' + 74 '&builder=Mac+Builder+(dbg)' + 75 '&builder=Linux%20Tests' + 76 '&builder=Linux%20Valgrind' + 77 '&builder=Vista%20Perf' + 78 '&builder=Linux%20Perf' + 79 '&builder=Mac10.6%20Perf"></iframe>' + 80 '</div>'); 64 '<div id="results" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"></div>'); 81 65 82 66 onebar.select('expected'); -
trunk/Tools/ChangeLog
r116595 r116599 1 2012-05-09 Ojan Vafai <ojan@chromium.org> 2 3 Change "losing test coverage" to cover all non-layout test problems in garden-o-matic 4 https://bugs.webkit.org/show_bug.cgi?id=86043 5 6 Reviewed by Adam Barth. 7 8 -Get rid of the gtest iframe. 9 -Cover all non-layout test problems. Before we wouldn't catch compile failures 10 or gtest failures since they were not on the webkit testing bots. 11 -Include the list of failing steps next to the builder name. This is a lot less 12 cluttered than you'd expect and already helped me find a compile failure early. 13 14 * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js: 15 * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js: 16 * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: 17 Delete unused map. 18 * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js: 19 * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/garden-o-matic.js: 20 * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js: 21 * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures.js: 22 * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures_unittests.js: 23 * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js: 24 * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: 25 * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js: 26 1 27 2012-05-09 Jessie Berlin <jberlin@apple.com> 2 28
Note: See TracChangeset
for help on using the changeset viewer.