in interfaces/interfaces.go [307:341]
func MergeResultSets(r1, r2 ResultSet) (ResultSet, error) {
resultSet := make(map[string]map[Backend]*Result)
for p, m := range r1 {
if _, exists := resultSet[p]; !exists {
resultSet[p] = make(map[Backend]*Result)
}
for b, r := range m {
if old, exists := resultSet[p][b]; exists {
if err := old.Cmp(r); err != nil {
return nil, errwrap.Wrapf(err, "duplicate result for %s in %s", p, b)
}
}
resultSet[p][b] = r
}
}
for p, m := range r2 {
if _, exists := resultSet[p]; !exists {
resultSet[p] = make(map[Backend]*Result)
}
for b, r := range m {
if old, exists := resultSet[p][b]; exists {
if err := old.Cmp(r); err != nil {
return nil, errwrap.Wrapf(err, "duplicate result for %s in %s", p, b)
}
}
resultSet[p][b] = r
}
}
return resultSet, nil
}