Changeset 119463 in webkit
- Timestamp:
- Jun 4, 2012, 11:38:30 PM (14 years ago)
- Location:
- trunk/Tools
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
TestResultServer/static-dashboards/builders.js (modified) (6 diffs)
-
TestResultServer/static-dashboards/flakiness_dashboard_unittests.js (modified) (1 diff)
-
TestResultServer/static-dashboards/run-unittests.html (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r119457 r119463 1 2012-06-04 Chase Phillips <cmp@google.com> 2 3 Make a builder group support+expect multiple loads. 4 https://bugs.webkit.org/show_bug.cgi?id=88260 5 6 Change BuilderGroup to allow expecting multiple 7 loads. This allows merging results for a given set 8 of builders into one group. 9 10 Add a test that verifies that the group count 11 increments correctly based on successful and failed 12 list loads. 13 14 Reviewed by Ojan Vafai. 15 16 * TestResultServer/static-dashboards/builders.js: 17 (BuilderGroup): 18 (BuilderGroup.prototype.setbuilder): 19 (BuilderGroup.prototype.append): 20 (BuilderGroup.prototype.loaded): 21 (requestBuilderList.xhr.onload): 22 (requestBuilderList.xhr.onerror): 23 (onErrorLoadingBuilderList): 24 (loadBuildersList): 25 * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: 26 (test): 27 * TestResultServer/static-dashboards/run-unittests.html: 28 1 29 2012-06-04 Ryosuke Niwa <rniwa@webkit.org> 2 30 -
trunk/Tools/TestResultServer/static-dashboards/builders.js
r116029 r119463 47 47 48 48 CHROMIUM_BUILDER_MASTER = new BuilderMaster('Chromium', 'http://build.chromium.org/p/chromium/'); 49 CHROMIUM_WIN_BUILDER_MASTER = new BuilderMaster('ChromiumWin', 'http://build.chromium.org/p/chromium.win/'); 50 CHROMIUM_MAC_BUILDER_MASTER = new BuilderMaster('ChromiumMac', 'http://build.chromium.org/p/chromium.mac/'); 51 CHROMIUM_LINUX_BUILDER_MASTER = new BuilderMaster('ChromiumLinux', 'http://build.chromium.org/p/chromium.linux/'); 49 52 CHROMIUMOS_BUILDER_MASTER = new BuilderMaster('ChromiumChromiumOS', 'http://build.chromium.org/p/chromium.chromiumos/'); 50 53 CHROMIUM_GPU_BUILDER_MASTER = new BuilderMaster('ChromiumGPU', 'http://build.chromium.org/p/chromium.gpu/'); … … 62 65 }; 63 66 64 function BuilderGroup(isToTWebKit , builders)67 function BuilderGroup(isToTWebKit) 65 68 { 66 69 this.isToTWebKit = isToTWebKit; … … 68 71 // path used in the builder's URL) 69 72 this.builders = {}; 73 this.groups = 0; 74 this.expectedGroups = 0; 75 } 76 77 BuilderGroup.prototype.setbuilder = function(builder, flags) { 78 this.builders[builder] = builder.replace(/[ .()]/g, '_'); 79 // FIXME: Remove this at some point, we don't actually use DEFAULT_BUILDER 80 // in any meaningful way anymore. We always just default to the 81 // first builder in alphabetical order. 82 if (flags & BuilderGroup.DEFAULT_BUILDER) 83 this.defaultBuilder = builder; 84 }; 85 86 BuilderGroup.prototype.append = function(builders) { 70 87 builders.forEach(function(builderAndFlags) { 71 88 var builder = builderAndFlags[0]; 72 89 var flags = builderAndFlags[1]; 73 74 this.builders[builder] = builder.replace(/[ .()]/g, '_'); 75 if (flags & BuilderGroup.DEFAULT_BUILDER) 76 this.defaultBuilder = builder; 90 this.setbuilder(builder, flags); 77 91 }, this); 92 this.groups += 1; 93 }; 94 95 BuilderGroup.prototype.loaded = function() { 96 return this.groups >= this.expectedGroups; 78 97 } 79 98 … … 99 118 } 100 119 101 function requestBuilderList(builderGroups, builderFilter, master, groupName, groupEnum) 102 { 120 function requestBuilderList(builderGroups, builderFilter, master, groupName, groupEnum, builderGroup) 121 { 122 if (!(groupName in builderGroups)) 123 builderGroups[groupName] = builderGroup; 124 103 125 var onLoad = partial(onBuilderListLoad, builderGroups, builderFilter, master, groupName, groupEnum); 104 126 var xhr = new XMLHttpRequest(); … … 109 131 onLoad(JSON.parse(xhr.response)); 110 132 else 111 onErrorLoadingBuilderList(url );133 onErrorLoadingBuilderList(url, builderGroups, groupName); 112 134 }; 113 xhr.onerror = function() { onErrorLoadingBuilderList(url ); };135 xhr.onerror = function() { onErrorLoadingBuilderList(url, builderGroups, groupName); }; 114 136 xhr.send(); 137 builderGroups[groupName].expectedGroups += 1; 115 138 } 116 139 … … 180 203 var builders = generateBuildersFromBuilderList(Object.keys(json), builderFilter); 181 204 associateBuildersWithMaster(builders, master); 182 builderGroups[groupName] = new BuilderGroup(groupEnum, builders); 183 g_handleBuildersListLoaded(); 184 } 185 186 function onErrorLoadingBuilderList(url) 187 { 188 alert('Could not load list of builders from ' + url + '. Try reloading.'); 189 } 190 191 function loadBuildersList(group, testType) { 205 builderGroups[groupName].append(builders); 206 if (builderGroups[groupName].loaded()) 207 g_handleBuildersListLoaded(); 208 } 209 210 function onErrorLoadingBuilderList(url, builderGroups, groupName) 211 { 212 builderGroups[groupName].groups += 1; 213 console.log('Could not load list of builders from ' + url + '. Try reloading.'); 214 } 215 216 function loadBuildersList(groupName, testType) { 192 217 if (testType == 'gpu_tests') { 193 switch(group ) {218 switch(groupName) { 194 219 case '@DEPS - chromium.org': 195 requestBuilderList(CHROMIUM_GPU_TESTS_BUILDER_GROUPS, isChromiumDepsGpuTestRunner, CHROMIUM_GPU_BUILDER_MASTER, group, BuilderGroup.DEPS_WEBKIT); 220 var builderGroup = new BuilderGroup(BuilderGroup.DEPS_WEBKIT); 221 requestBuilderList(CHROMIUM_GPU_TESTS_BUILDER_GROUPS, isChromiumDepsGpuTestRunner, CHROMIUM_GPU_BUILDER_MASTER, groupName, BuilderGroup.DEPS_WEBKIT, builderGroup); 196 222 break; 197 223 198 224 case '@DEPS FYI - chromium.org': 199 requestBuilderList(CHROMIUM_GPU_TESTS_BUILDER_GROUPS, isChromiumDepsFyiGpuTestRunner, CHROMIUM_GPU_FYI_BUILDER_MASTER, group, BuilderGroup.DEPS_WEBKIT); 225 var builderGroup = new BuilderGroup(BuilderGroup.DEPS_WEBKIT); 226 requestBuilderList(CHROMIUM_GPU_TESTS_BUILDER_GROUPS, isChromiumDepsFyiGpuTestRunner, CHROMIUM_GPU_FYI_BUILDER_MASTER, groupName, BuilderGroup.DEPS_WEBKIT, builderGroup); 200 227 break; 201 228 202 229 case '@ToT - chromium.org': 203 requestBuilderList(CHROMIUM_GPU_TESTS_BUILDER_GROUPS, isChromiumTipOfTreeGpuTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, group, BuilderGroup.TOT_WEBKIT); 230 var builderGroup = new BuilderGroup(BuilderGroup.TOT_WEBKIT); 231 requestBuilderList(CHROMIUM_GPU_TESTS_BUILDER_GROUPS, isChromiumTipOfTreeGpuTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, groupName, BuilderGroup.TOT_WEBKIT, builderGroup); 204 232 break; 205 233 } 206 234 } else if (testType == 'layout-tests') { 207 switch(group ) {235 switch(groupName) { 208 236 case '@ToT - chromium.org': 209 requestBuilderList(LAYOUT_TESTS_BUILDER_GROUPS, isChromiumWebkitTipOfTreeTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, group, BuilderGroup.TOT_WEBKIT); 237 var builderGroup = new BuilderGroup(BuilderGroup.TOT_WEBKIT); 238 requestBuilderList(LAYOUT_TESTS_BUILDER_GROUPS, isChromiumWebkitTipOfTreeTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, groupName, BuilderGroup.TOT_WEBKIT, builderGroup); 210 239 break; 211 240 212 241 case '@ToT - webkit.org': 213 requestBuilderList(LAYOUT_TESTS_BUILDER_GROUPS, isWebkitTestRunner, WEBKIT_BUILDER_MASTER, group, BuilderGroup.TOT_WEBKIT); 242 var builderGroup = new BuilderGroup(BuilderGroup.TOT_WEBKIT); 243 requestBuilderList(LAYOUT_TESTS_BUILDER_GROUPS, isWebkitTestRunner, WEBKIT_BUILDER_MASTER, groupName, BuilderGroup.TOT_WEBKIT, builderGroup); 214 244 break; 215 245 216 246 case '@DEPS - chromium.org': 217 requestBuilderList(LAYOUT_TESTS_BUILDER_GROUPS, isChromiumWebkitDepsTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, group, BuilderGroup.DEPS_WEBKIT); 247 var builderGroup = new BuilderGroup(BuilderGroup.DEPS_WEBKIT); 248 requestBuilderList(LAYOUT_TESTS_BUILDER_GROUPS, isChromiumWebkitDepsTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, groupName, BuilderGroup.DEPS_WEBKIT, builderGroup); 218 249 break; 219 250 } 220 251 } else { 221 switch(group ) {252 switch(groupName) { 222 253 case '@DEPS - chromium.org': 223 requestBuilderList(CHROMIUM_GTESTS_BUILDER_GROUPS, isChromiumDepsGTestRunner, CHROMIUM_BUILDER_MASTER, group, BuilderGroup.DEPS_WEBKIT); 254 var builderGroup = new BuilderGroup(BuilderGroup.DEPS_WEBKIT); 255 requestBuilderList(CHROMIUM_GTESTS_BUILDER_GROUPS, isChromiumDepsGTestRunner, CHROMIUM_BUILDER_MASTER, groupName, BuilderGroup.DEPS_WEBKIT, builderGroup); 256 requestBuilderList(CHROMIUM_GTESTS_BUILDER_GROUPS, isChromiumDepsGTestRunner, CHROMIUM_WIN_BUILDER_MASTER, groupName, BuilderGroup.DEPS_WEBKIT, builderGroup); 257 requestBuilderList(CHROMIUM_GTESTS_BUILDER_GROUPS, isChromiumDepsGTestRunner, CHROMIUM_MAC_BUILDER_MASTER, groupName, BuilderGroup.DEPS_WEBKIT, builderGroup); 258 requestBuilderList(CHROMIUM_GTESTS_BUILDER_GROUPS, isChromiumDepsGTestRunner, CHROMIUM_LINUX_BUILDER_MASTER, groupName, BuilderGroup.DEPS_WEBKIT, builderGroup); 224 259 break; 225 260 226 261 case '@DEPS CrOS - chromium.org': 227 requestBuilderList(CHROMIUM_GTESTS_BUILDER_GROUPS, isChromiumDepsCrosGTestRunner, CHROMIUMOS_BUILDER_MASTER, group, BuilderGroup.DEPS_WEBKIT); 262 var builderGroup = new BuilderGroup(BuilderGroup.DEPS_WEBKIT); 263 requestBuilderList(CHROMIUM_GTESTS_BUILDER_GROUPS, isChromiumDepsCrosGTestRunner, CHROMIUMOS_BUILDER_MASTER, groupName, BuilderGroup.DEPS_WEBKIT, builderGroup); 228 264 break; 229 265 230 266 case '@ToT - chromium.org': 231 requestBuilderList(CHROMIUM_GTESTS_BUILDER_GROUPS, isChromiumTipOfTreeGTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, group, BuilderGroup.TOT_WEBKIT); 267 var builderGroup = new BuilderGroup(BuilderGroup.TOT_WEBKIT); 268 requestBuilderList(CHROMIUM_GTESTS_BUILDER_GROUPS, isChromiumTipOfTreeGTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, groupName, BuilderGroup.TOT_WEBKIT, builderGroup); 232 269 break; 233 270 } -
trunk/Tools/TestResultServer/static-dashboards/flakiness_dashboard_unittests.js
r119314 r119463 631 631 var dummyMaster = new BuilderMaster('dummy.org', 'http://build.dummy.org'); 632 632 var testBuilderGroups = { 633 '@ToT - dummy.org': n ull,634 '@DEPS - dummy.org': n ull,633 '@ToT - dummy.org': new BuilderGroup(BuilderGroup.TOT_WEBKIT), 634 '@DEPS - dummy.org': new BuilderGroup(BuilderGroup.DEPS_WEBKIT), 635 635 } 636 testBuilderGroups['@ToT - dummy.org'].expectedGroups = 1; 637 testBuilderGroups['@DEPS - dummy.org'].expectedGroups = 1; 638 636 639 var testJSONData = "{ \"Dummy Builder 1\": null, \"Dummy Builder 2\": null }"; 637 638 640 onBuilderListLoad(testBuilderGroups, function() { return true; }, dummyMaster, '@ToT - dummy.org', BuilderGroup.TOT_WEBKIT, JSON.parse(testJSONData)); 639 641 equal(testBuilderGroups['@ToT - dummy.org'].isToTWebKit, true); 640 641 642 onBuilderListLoad(testBuilderGroups, function() { return true; }, dummyMaster, '@DEPS - dummy.org', BuilderGroup.DEPS_WEBKIT, JSON.parse(testJSONData)); 642 643 equal(testBuilderGroups['@DEPS - dummy.org'].isToTWebKit, false); 644 }); 645 646 test('builderGroupExpectedGroups', 4, function() { 647 var dummyMaster = new BuilderMaster('dummy.org', 'http://build.dummy.org'); 648 var testBuilderGroups = { 649 '@ToT - dummy.org': new BuilderGroup(BuilderGroup.TOT_WEBKIT), 650 } 651 testBuilderGroups['@ToT - dummy.org'].expectedGroups = 3; 652 653 var testJSONData = "{ \"Dummy Builder 1\": null }"; 654 equal(testBuilderGroups['@ToT - dummy.org'].expectedGroups, 3); 655 onBuilderListLoad(testBuilderGroups, function() { return true; }, dummyMaster, '@ToT - dummy.org', BuilderGroup.TOT_WEBKIT, JSON.parse(testJSONData)); 656 equal(testBuilderGroups['@ToT - dummy.org'].groups, 1); 657 var testJSONData = "{ \"Dummy Builder 2\": null }"; 658 onBuilderListLoad(testBuilderGroups, function() { return true; }, dummyMaster, '@ToT - dummy.org', BuilderGroup.TOT_WEBKIT, JSON.parse(testJSONData)); 659 equal(testBuilderGroups['@ToT - dummy.org'].groups, 2); 660 onErrorLoadingBuilderList('http://build.dummy.org', testBuilderGroups, '@ToT - dummy.org'); 661 equal(testBuilderGroups['@ToT - dummy.org'].groups, 3); 643 662 }); 644 663 -
trunk/Tools/TestResultServer/static-dashboards/run-unittests.html
r116024 r119463 53 53 <script> 54 54 window.location.href = '#useTestData=true'; 55 var builderGroup= '@ToT - chromium.org';55 var groupName = '@ToT - chromium.org'; 56 56 var builders = {'Webkit Linux': '', 'Webkit Linux (dbg)': '', 'Webkit Mac10.5': '', 'Webkit Win': ''}; 57 onBuilderListLoad(LAYOUT_TESTS_BUILDER_GROUPS, isChromiumWebkitTipOfTreeTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, builderGroup, BuilderGroup.TOT_WEBKIT, builders); 57 LAYOUT_TESTS_BUILDER_GROUPS[groupName] = new BuilderGroup(BuilderGroup.TOT_WEBKIT); 58 LAYOUT_TESTS_BUILDER_GROUPS[groupName].expectedGroups = 4; 59 onBuilderListLoad(LAYOUT_TESTS_BUILDER_GROUPS, isChromiumWebkitTipOfTreeTestRunner, CHROMIUM_WEBKIT_BUILDER_MASTER, groupName, BuilderGroup.TOT_WEBKIT, builders); 58 60 initBuilders(); 59 61 </script>
Note:
See TracChangeset
for help on using the changeset viewer.