List<AbstractProject> noFingerprints = new ArrayList<AbstractProject>();
for (AbstractProject job : getJobs()) {
RangeSet rs = owner.getDownstreamRelationship(job);
if(rs.isEmpty()) {
// is this job expected to produce a test result?
Run b = job.getLastSuccessfulBuild();
if(b!=null && b.getAction(AbstractTestResultAction.class)!=null) {
if(b.getAction(FingerprintAction.class)!=null) {
didntRun.add(job);
} else {
noFingerprints.add(job);
}
}
} else {
for (int n : rs.listNumbersReverse()) {
Run b = job.getBuildByNumber(n);
if(b==null) continue;
if(b.isBuilding() || b.getResult().isWorseThan(Result.UNSTABLE))
continue; // don't count them
for( AbstractTestResultAction ta : b.getActions(AbstractTestResultAction.class)) {
failCount += ta.getFailCount();
totalCount += ta.getTotalCount();
individuals.add(ta);
}
break;