Index: Tools/GardeningServer/model/ct-failure-group.html |
diff --git a/Tools/GardeningServer/model/ct-failure-group.html b/Tools/GardeningServer/model/ct-failure-group.html |
index 60fc5578c1690a93348c65613b9bf121a40ed74c..1b8565ef14d3e24aeb82aba86ca37a627b09eade 100644 |
--- a/Tools/GardeningServer/model/ct-failure-group.html |
+++ b/Tools/GardeningServer/model/ct-failure-group.html |
@@ -44,13 +44,30 @@ CTFailureGroup.prototype.clearBug = function(bug) { |
}); |
}; |
+CTFailureGroup.prototype._failedOnce = function() { |
+ var totalFailures = 0; |
+ for (var i = 0; i < this.data.dataToExamine().length; i++) { |
+ var resultNodes = this.data.dataToExamine()[i].resultNodesByBuilder; |
+ Object.keys(resultNodes, function(r) { |
+ totalFailures += resultNodes[r].failingBuildCount; |
+ if (totalFailures > 1) |
+ return false; |
+ }.bind(this)); |
+ } |
+ return totalFailures == 1; |
+} |
+ |
CTFailureGroup.prototype._computeProperties = function() { |
this.isSnoozed = Date.now() < this._annotation.snoozeTime; |
if (this.isSnoozed) { |
this.category = 'snoozed'; |
} else { |
+ if (this._failedOnce()) { |
+ this.category = 'failedOnce'; |
+ } else { |
+ this.category = 'default'; |
+ } |
// FIXME: crbug.com/400397 Split into: Whole step failure, Tree closer, Test failure, Flaky tests |
- this.category = 'default'; |
} |
this.bug = this._annotation.bug; |