Merge pull request #81842 from verb/range-scheduler

Add test for HTTPExtender.IsInterested
This commit is contained in:
Kubernetes Prow Robot 2019-08-25 15:48:20 -07:00 committed by GitHub
commit 12e6930d8a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -23,7 +23,9 @@ import (
"time" "time"
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
"k8s.io/kubernetes/pkg/scheduler/algorithm" "k8s.io/kubernetes/pkg/scheduler/algorithm"
"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates" "k8s.io/kubernetes/pkg/scheduler/algorithm/predicates"
@ -575,3 +577,87 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
func createNode(name string) *v1.Node { func createNode(name string) *v1.Node {
return &v1.Node{ObjectMeta: metav1.ObjectMeta{Name: name}} return &v1.Node{ObjectMeta: metav1.ObjectMeta{Name: name}}
} }
func TestIsInterested(t *testing.T) {
mem := &HTTPExtender{
managedResources: sets.NewString(),
}
mem.managedResources.Insert("memory")
for _, tc := range []struct {
label string
extender *HTTPExtender
pod *v1.Pod
want bool
}{
{
label: "Empty managed resources",
extender: &HTTPExtender{
managedResources: sets.NewString(),
},
pod: &v1.Pod{},
want: true,
},
{
label: "Managed memory, empty resources",
extender: mem,
pod: &v1.Pod{
Spec: v1.PodSpec{
Containers: []v1.Container{
{
Name: "app",
},
},
},
},
want: false,
},
{
label: "Managed memory, container memory",
extender: mem,
pod: &v1.Pod{
Spec: v1.PodSpec{
Containers: []v1.Container{
{
Name: "app",
Resources: v1.ResourceRequirements{
Requests: v1.ResourceList{"memory": resource.Quantity{}},
Limits: v1.ResourceList{"memory": resource.Quantity{}},
},
},
},
},
},
want: true,
},
{
label: "Managed memory, init container memory",
extender: mem,
pod: &v1.Pod{
Spec: v1.PodSpec{
Containers: []v1.Container{
{
Name: "app",
},
},
InitContainers: []v1.Container{
{
Name: "init",
Resources: v1.ResourceRequirements{
Requests: v1.ResourceList{"memory": resource.Quantity{}},
Limits: v1.ResourceList{"memory": resource.Quantity{}},
},
},
},
},
},
want: true,
},
} {
t.Run(tc.label, func(t *testing.T) {
if got := tc.extender.IsInterested(tc.pod); got != tc.want {
t.Fatalf("IsInterested(%v) = %v, wanted %v", tc.pod, got, tc.want)
}
})
}
}