Skip to content

Commit cb03a33

Browse files
committed
Add test for HTTPExtender.IsInterested
1 parent 103e926 commit cb03a33

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

pkg/scheduler/core/extender_test.go

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ import (
2323
"time"
2424

2525
"k8s.io/api/core/v1"
26+
"k8s.io/apimachinery/pkg/api/resource"
2627
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
28+
"k8s.io/apimachinery/pkg/util/sets"
2729
"k8s.io/apimachinery/pkg/util/wait"
2830
"k8s.io/kubernetes/pkg/scheduler/algorithm"
2931
"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates"
@@ -575,3 +577,87 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
575577
func createNode(name string) *v1.Node {
576578
return &v1.Node{ObjectMeta: metav1.ObjectMeta{Name: name}}
577579
}
580+
581+
func TestIsInterested(t *testing.T) {
582+
mem := &HTTPExtender{
583+
managedResources: sets.NewString(),
584+
}
585+
mem.managedResources.Insert("memory")
586+
587+
for _, tc := range []struct {
588+
label string
589+
extender *HTTPExtender
590+
pod *v1.Pod
591+
want bool
592+
}{
593+
{
594+
label: "Empty managed resources",
595+
extender: &HTTPExtender{
596+
managedResources: sets.NewString(),
597+
},
598+
pod: &v1.Pod{},
599+
want: true,
600+
},
601+
{
602+
label: "Managed memory, empty resources",
603+
extender: mem,
604+
pod: &v1.Pod{
605+
Spec: v1.PodSpec{
606+
Containers: []v1.Container{
607+
{
608+
Name: "app",
609+
},
610+
},
611+
},
612+
},
613+
want: false,
614+
},
615+
{
616+
label: "Managed memory, container memory",
617+
extender: mem,
618+
pod: &v1.Pod{
619+
Spec: v1.PodSpec{
620+
Containers: []v1.Container{
621+
{
622+
Name: "app",
623+
Resources: v1.ResourceRequirements{
624+
Requests: v1.ResourceList{"memory": resource.Quantity{}},
625+
Limits: v1.ResourceList{"memory": resource.Quantity{}},
626+
},
627+
},
628+
},
629+
},
630+
},
631+
want: true,
632+
},
633+
{
634+
label: "Managed memory, init container memory",
635+
extender: mem,
636+
pod: &v1.Pod{
637+
Spec: v1.PodSpec{
638+
Containers: []v1.Container{
639+
{
640+
Name: "app",
641+
},
642+
},
643+
InitContainers: []v1.Container{
644+
{
645+
Name: "init",
646+
Resources: v1.ResourceRequirements{
647+
Requests: v1.ResourceList{"memory": resource.Quantity{}},
648+
Limits: v1.ResourceList{"memory": resource.Quantity{}},
649+
},
650+
},
651+
},
652+
},
653+
},
654+
want: true,
655+
},
656+
} {
657+
t.Run(tc.label, func(t *testing.T) {
658+
if got := tc.extender.IsInterested(tc.pod); got != tc.want {
659+
t.Fatalf("IsInterested(%v) = %v, wanted %v", tc.pod, got, tc.want)
660+
}
661+
})
662+
}
663+
}

0 commit comments

Comments
 (0)