| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 { | 104 { |
| 105 var builders = {}; | 105 var builders = {}; |
| 106 Object.keys(model.state.resultsByBuilder).forEach(function(builderName) { | 106 Object.keys(model.state.resultsByBuilder).forEach(function(builderName) { |
| 107 var results = model.state.resultsByBuilder[builderName]; | 107 var results = model.state.resultsByBuilder[builderName]; |
| 108 if (parseInt(results.blink_revision) < revision) | 108 if (parseInt(results.blink_revision) < revision) |
| 109 builders[builderName] = { actual: 'BUILDING' }; | 109 builders[builderName] = { actual: 'BUILDING' }; |
| 110 }); | 110 }); |
| 111 return builders; | 111 return builders; |
| 112 }; | 112 }; |
| 113 | 113 |
| 114 model.latestRevision = function() | |
| 115 { | |
| 116 return model.state.recentCommits[0].revision; | |
| 117 }; | |
| 118 | |
| 119 model.latestRevisionWithNoBuildersInFlight = function() | |
| 120 { | |
| 121 var revision = 0; | |
| 122 Object.keys(model.state.resultsByBuilder).forEach(function(builderName) { | |
| 123 var results = model.state.resultsByBuilder[builderName]; | |
| 124 if (!results.blink_revision) | |
| 125 return; | |
| 126 var testedRevision = parseInt(results.blink_revision); | |
| 127 revision = revision ? Math.min(revision, testedRevision) : testedRevisio
n; | |
| 128 }); | |
| 129 return revision; | |
| 130 } | |
| 131 | |
| 132 model.latestRevisionByBuilder = function() | |
| 133 { | |
| 134 var revision = {}; | |
| 135 Object.keys(model.state.resultsByBuilder).forEach(function(builderName) { | |
| 136 revision[builderName] = model.state.resultsByBuilder[builderName].blink_
revision; | |
| 137 }); | |
| 138 return revision; | |
| 139 } | |
| 140 | |
| 141 model.updateResultsByBuilder = function() | 114 model.updateResultsByBuilder = function() |
| 142 { | 115 { |
| 143 return results.fetchResultsByBuilder(Object.keys(config.builders)).then(func
tion(resultsByBuilder) { | 116 return results.fetchResultsByBuilder(Object.keys(config.builders)).then(func
tion(resultsByBuilder) { |
| 144 model.state.resultsByBuilder = resultsByBuilder; | 117 model.state.resultsByBuilder = resultsByBuilder; |
| 145 }); | 118 }); |
| 146 }; | 119 }; |
| 147 | 120 |
| 148 // failureCallback is called multiple times: once for each failure | 121 // failureCallback is called multiple times: once for each failure |
| 149 model.analyzeUnexpectedFailures = function(failureCallback) | 122 model.analyzeUnexpectedFailures = function(failureCallback) |
| 150 { | 123 { |
| (...skipping 28 matching lines...) Expand all Loading... |
| 179 } | 152 } |
| 180 | 153 |
| 181 model.state.failureAnalysisByTest[testName] = failureAnalysis; | 154 model.state.failureAnalysisByTest[testName] = failureAnalysis; |
| 182 | 155 |
| 183 failureCallback(failureAnalysis, failurePromises.length); | 156 failureCallback(failureAnalysis, failurePromises.length); |
| 184 })); | 157 })); |
| 185 }); | 158 }); |
| 186 return Promise.all(failurePromises); | 159 return Promise.all(failurePromises); |
| 187 }; | 160 }; |
| 188 | 161 |
| 189 model.unexpectedFailureInfoForTestName = function(testName) | |
| 190 { | |
| 191 var resultsByTest = results.unexpectedFailuresByTest(model.state.resultsByBu
ilder); | |
| 192 | |
| 193 return Object.keys(resultsByTest[testName]).map(function(builderName) { | |
| 194 return results.failureInfoForTestAndBuilder(resultsByTest, testName, bui
lderName); | |
| 195 }); | |
| 196 }; | |
| 197 | |
| 198 })(); | 162 })(); |
| OLD | NEW |