| OLD | NEW |
| 1 // Copyright (C) 2012 Google Inc. All rights reserved. | 1 // Copyright (C) 2012 Google Inc. All rights reserved. |
| 2 // | 2 // |
| 3 // Redistribution and use in source and binary forms, with or without | 3 // Redistribution and use in source and binary forms, with or without |
| 4 // modification, are permitted provided that the following conditions are | 4 // modification, are permitted provided that the following conditions are |
| 5 // met: | 5 // met: |
| 6 // | 6 // |
| 7 // * Redistributions of source code must retain the above copyright | 7 // * Redistributions of source code must retain the above copyright |
| 8 // notice, this list of conditions and the following disclaimer. | 8 // notice, this list of conditions and the following disclaimer. |
| 9 // * Redistributions in binary form must reproduce the above | 9 // * Redistributions in binary form must reproduce the above |
| 10 // copyright notice, this list of conditions and the following disclaimer | 10 // copyright notice, this list of conditions and the following disclaimer |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 24 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 25 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 25 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 26 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 26 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 27 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 27 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 28 | 28 |
| 29 function LOAD_BUILDBOT_DATA(builderData) | 29 function LOAD_BUILDBOT_DATA(builderData) |
| 30 { | 30 { |
| 31 builders.masters = {}; | 31 builders.masters = {}; |
| 32 var groups = {}; | 32 var groups = {}; |
| 33 var testTypes = {}; | 33 var testTypes = {}; |
| 34 var testTypesThatDoNotUpload = {}; |
| 35 builders.noUploadTestTypes = builderData['no_upload_test_types'] |
| 34 builderData['masters'].forEach(function(master) { | 36 builderData['masters'].forEach(function(master) { |
| 35 builders.masters[master.name] = new builders.BuilderMaster(master.name,
master.url, master.tests, master.groups); | 37 builders.masters[master.name] = new builders.BuilderMaster(master.name,
master.url, master.tests, master.groups); |
| 36 | 38 |
| 37 master.groups.forEach(function(group) { groups[group] = true; }); | 39 master.groups.forEach(function(group) { groups[group] = true; }); |
| 38 | 40 |
| 39 Object.keys(master.tests).forEach(function(testType) { | 41 Object.keys(master.tests).forEach(function(testType) { |
| 40 if (builders.testTypeUploadsToFlakinessDashboardServer(testType)) | 42 if (builders.testTypeUploadsToFlakinessDashboardServer(testType)) |
| 41 testTypes[testType] = true; | 43 testTypes[testType] = true; |
| 44 else |
| 45 testTypesThatDoNotUpload[testType] = true; |
| 42 }); | 46 }); |
| 43 }); | 47 }); |
| 44 builders.groups = Object.keys(groups); | 48 builders.groups = Object.keys(groups); |
| 45 builders.groups.sort(); | 49 builders.groups.sort(); |
| 46 builders.testTypes = Object.keys(testTypes); | 50 builders.testTypes = Object.keys(testTypes); |
| 47 builders.testTypes.sort(); | 51 builders.testTypes.sort(); |
| 52 // FIXME: Expose this in the flakiness dashboard UI and give a clear error m
essage |
| 53 // pointing to a bug about getting the test type in question uploading resul
ts. |
| 54 builders.testTypesThatDoNotUpload = Object.keys(testTypesThatDoNotUpload); |
| 55 builders.testTypesThatDoNotUpload.sort(); |
| 48 } | 56 } |
| 49 | 57 |
| 50 var builders = builders || {}; | 58 var builders = builders || {}; |
| 51 | 59 |
| 52 (function() { | 60 (function() { |
| 53 | 61 |
| 54 builders.testTypeUploadsToFlakinessDashboardServer = function(testType) | 62 builders.testTypeUploadsToFlakinessDashboardServer = function(testType) |
| 55 { | 63 { |
| 56 // FIXME: Encode whether the test uploads to the server in the buildbot json
so | 64 for (var i = 0; i < builders.noUploadTestTypes.length; i++) { |
| 57 // we can include that data in buildbot.jsonp and not need to do ugly heuris
tics | 65 if (string.contains(testType, builders.noUploadTestTypes[i])) |
| 58 // based off the name of the test suite. This code both has some false posit
ives | 66 return false; |
| 59 // and some false negatives. | 67 } |
| 60 return !testType.match(/_only|_ignore|_perf$/) && !testType.match(/^memory t
est:|install_/) && testType != 'Run tests'; | 68 return true; |
| 61 } | 69 } |
| 62 | 70 |
| 63 var currentBuilderGroup = {}; | 71 var currentBuilderGroup = {}; |
| 64 var testTypesThatRunToTBlinkBots = ['layout-tests', 'webkit_unit_tests']; | 72 var testTypesThatRunToTBlinkBots = ['layout-tests', 'webkit_unit_tests']; |
| 65 | 73 |
| 66 builders.getBuilderGroup = function(groupName, testType) | 74 builders.getBuilderGroup = function(groupName, testType) |
| 67 { | 75 { |
| 68 if (!builders in currentBuilderGroup) { | 76 if (!builders in currentBuilderGroup) { |
| 69 currentBuilderGroup = builders.loadBuildersList(groupName, testType); | 77 currentBuilderGroup = builders.loadBuildersList(groupName, testType); |
| 70 } | 78 } |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 if (prev.indexOf(curr) == -1) { | 220 if (prev.indexOf(curr) == -1) { |
| 213 prev.push(curr); | 221 prev.push(curr); |
| 214 } | 222 } |
| 215 return prev; | 223 return prev; |
| 216 }, []); | 224 }, []); |
| 217 | 225 |
| 218 return groupNames; | 226 return groupNames; |
| 219 } | 227 } |
| 220 | 228 |
| 221 })(); | 229 })(); |
| OLD | NEW |