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 17 matching lines...) Expand all Loading... |
28 (function () { | 28 (function () { |
29 | 29 |
30 var kCommitLogLength = 50; | 30 var kCommitLogLength = 50; |
31 | 31 |
32 model.state = {}; | 32 model.state = {}; |
33 model.state.failureAnalysisByTest = {}; | 33 model.state.failureAnalysisByTest = {}; |
34 | 34 |
35 function findAndMarkRevertedRevisions(commitDataList) | 35 function findAndMarkRevertedRevisions(commitDataList) |
36 { | 36 { |
37 var revertedRevisions = {}; | 37 var revertedRevisions = {}; |
38 $.each(commitDataList, function(index, commitData) { | 38 Object.keys(commitDataList, function(index, commitData) { |
39 if (commitData.revertedRevision) | 39 if (commitData.revertedRevision) |
40 revertedRevisions[commitData.revertedRevision] = true; | 40 revertedRevisions[commitData.revertedRevision] = true; |
41 }); | 41 }); |
42 $.each(commitDataList, function(index, commitData) { | 42 Object.keys(commitDataList, function(index, commitData) { |
43 if (commitData.revision in revertedRevisions) | 43 if (commitData.revision in revertedRevisions) |
44 commitData.wasReverted = true; | 44 commitData.wasReverted = true; |
45 }); | 45 }); |
46 } | 46 } |
47 | 47 |
48 function fuzzyFind(testName, commitData) | 48 function fuzzyFind(testName, commitData) |
49 { | 49 { |
50 var indexOfLastDot = testName.lastIndexOf('.'); | 50 var indexOfLastDot = testName.lastIndexOf('.'); |
51 var stem = indexOfLastDot == -1 ? testName : testName.substr(0, indexOfLastD
ot); | 51 var stem = indexOfLastDot == -1 ? testName : testName.substr(0, indexOfLastD
ot); |
52 return commitData.message.indexOf(stem) != -1; | 52 return commitData.message.indexOf(stem) != -1; |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 return results.fetchResultsByBuilder(Object.keys(config.builders)).then(func
tion(resultsByBuilder) { | 143 return results.fetchResultsByBuilder(Object.keys(config.builders)).then(func
tion(resultsByBuilder) { |
144 model.state.resultsByBuilder = resultsByBuilder; | 144 model.state.resultsByBuilder = resultsByBuilder; |
145 }); | 145 }); |
146 }; | 146 }; |
147 | 147 |
148 // failureCallback is called multiple times: once for each failure | 148 // failureCallback is called multiple times: once for each failure |
149 model.analyzeUnexpectedFailures = function(failureCallback) | 149 model.analyzeUnexpectedFailures = function(failureCallback) |
150 { | 150 { |
151 var unexpectedFailures = results.unexpectedFailuresByTest(model.state.result
sByBuilder); | 151 var unexpectedFailures = results.unexpectedFailuresByTest(model.state.result
sByBuilder); |
152 | 152 |
153 $.each(model.state.failureAnalysisByTest, function(testName, failureAnalysis
) { | 153 Object.keys(model.state.failureAnalysisByTest, function(testName, failureAna
lysis) { |
154 if (!(testName in unexpectedFailures)) | 154 if (!(testName in unexpectedFailures)) |
155 delete model.state.failureAnalysisByTest[testName]; | 155 delete model.state.failureAnalysisByTest[testName]; |
156 }); | 156 }); |
157 | 157 |
158 var failurePromises = []; | 158 var failurePromises = []; |
159 $.each(unexpectedFailures, function(testName, resultNodesByBuilder) { | 159 Object.keys(unexpectedFailures, function(testName, resultNodesByBuilder) { |
160 var builderNameList = Object.keys(resultNodesByBuilder); | 160 var builderNameList = Object.keys(resultNodesByBuilder); |
161 failurePromises.push(results.unifyRegressionRanges(builderNameList, test
Name).then(function(result) { | 161 failurePromises.push(results.unifyRegressionRanges(builderNameList, test
Name).then(function(result) { |
162 var oldestFailingRevision = result[0]; | 162 var oldestFailingRevision = result[0]; |
163 var newestPassingRevision = result[1]; | 163 var newestPassingRevision = result[1]; |
164 var failureAnalysis = { | 164 var failureAnalysis = { |
165 'testName': testName, | 165 'testName': testName, |
166 'resultNodesByBuilder': resultNodesByBuilder, | 166 'resultNodesByBuilder': resultNodesByBuilder, |
167 'oldestFailingRevision': oldestFailingRevision, | 167 'oldestFailingRevision': oldestFailingRevision, |
168 'newestPassingRevision': newestPassingRevision, | 168 'newestPassingRevision': newestPassingRevision, |
169 }; | 169 }; |
(...skipping 19 matching lines...) Expand all Loading... |
189 model.unexpectedFailureInfoForTestName = function(testName) | 189 model.unexpectedFailureInfoForTestName = function(testName) |
190 { | 190 { |
191 var resultsByTest = results.unexpectedFailuresByTest(model.state.resultsByBu
ilder); | 191 var resultsByTest = results.unexpectedFailuresByTest(model.state.resultsByBu
ilder); |
192 | 192 |
193 return Object.keys(resultsByTest[testName]).map(function(builderName) { | 193 return Object.keys(resultsByTest[testName]).map(function(builderName) { |
194 return results.failureInfoForTestAndBuilder(resultsByTest, testName, bui
lderName); | 194 return results.failureInfoForTestAndBuilder(resultsByTest, testName, bui
lderName); |
195 }); | 195 }); |
196 }; | 196 }; |
197 | 197 |
198 })(); | 198 })(); |
OLD | NEW |