Add unit test for scheduler custom policy redeclaration validation

This commit is contained in:
Mike Dame 2019-10-28 14:51:57 -04:00
parent 5296650c1c
commit 0f15705328
2 changed files with 22 additions and 2 deletions

View File

@ -89,7 +89,7 @@ func validatePriorityRedeclared(priorities map[string]schedulerapi.PriorityPolic
return fmt.Errorf("No priority arguments set for priority %s", priority.Name)
}
if existing, alreadyDeclared := priorities[priorityType]; alreadyDeclared {
return fmt.Errorf("Priority %s is redeclared (was %+v)", priority.Name, existing)
return fmt.Errorf("Priority '%s' redeclares custom priority '%s', from:'%s'", priority.Name, priorityType, existing.Name)
}
priorities[priorityType] = priority
}
@ -109,7 +109,7 @@ func validatePredicateRedeclared(predicates map[string]schedulerapi.PredicatePol
return fmt.Errorf("No priority arguments set for priority %s", predicate.Name)
}
if existing, alreadyDeclared := predicates[predicateType]; alreadyDeclared {
return fmt.Errorf("Priority %s is redeclared (was %+v)", predicate.Name, existing)
return fmt.Errorf("Predicate '%s' redeclares custom predicate '%s', from:'%s'", predicate.Name, predicateType, existing.Name)
}
predicates[predicateType] = predicate
}

View File

@ -102,6 +102,26 @@ func TestValidatePolicy(t *testing.T) {
}},
expected: errors.New("kubernetes.io/foo is an invalid extended resource name"),
},
{
name: "invalid redeclared custom predicate",
policy: api.Policy{
Predicates: []api.PredicatePolicy{
{Name: "customPredicate1", Argument: &api.PredicateArgument{ServiceAffinity: &api.ServiceAffinity{Labels: []string{"label1"}}}},
{Name: "customPredicate2", Argument: &api.PredicateArgument{ServiceAffinity: &api.ServiceAffinity{Labels: []string{"label2"}}}},
},
},
expected: errors.New("Predicate 'customPredicate2' redeclares custom predicate 'ServiceAffinity', from:'customPredicate1'"),
},
{
name: "invalid redeclared custom priority",
policy: api.Policy{
Priorities: []api.PriorityPolicy{
{Name: "customPriority1", Weight: 1, Argument: &api.PriorityArgument{ServiceAntiAffinity: &api.ServiceAntiAffinity{Label: "label1"}}},
{Name: "customPriority2", Weight: 1, Argument: &api.PriorityArgument{ServiceAntiAffinity: &api.ServiceAntiAffinity{Label: "label2"}}},
},
},
expected: errors.New("Priority 'customPriority2' redeclares custom priority 'ServiceAntiAffinity', from:'customPriority1'"),
},
}
for _, test := range tests {