| 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 |