cleanup: move scheduler tests to use PodWrapper

Move to use testing PodWrapper where applicable to
reduce duplicating pod creation code and shorten
number of lines.

Adding additional wrapper functions in PodWrapper
to ensure it covers all pod spec under tests.

Signed-off-by: Yibo Zhuang <yibzhuang@gmail.com>
This commit is contained in:
Yibo Zhuang
2022-05-05 10:48:26 -07:00
parent d582814d5e
commit fd08d47d8b
7 changed files with 366 additions and 437 deletions

View File

@@ -23,7 +23,6 @@ import (
"time"
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/wait"
@@ -352,56 +351,23 @@ func TestIsInterested(t *testing.T) {
{
label: "Managed memory, empty resources",
extender: mem,
pod: &v1.Pod{
Spec: v1.PodSpec{
Containers: []v1.Container{
{
Name: "app",
},
},
},
},
want: false,
pod: st.MakePod().Container("app").Obj(),
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{}},
},
},
},
},
},
pod: st.MakePod().Req(map[v1.ResourceName]string{
"memory": "0",
}).Obj(),
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{}},
},
},
},
},
},
pod: st.MakePod().Container("app").InitReq(map[v1.ResourceName]string{
"memory": "0",
}).Obj(),
want: true,
},
} {
@@ -424,15 +390,15 @@ func TestConvertToMetaVictims(t *testing.T) {
nodeNameToVictims: map[string]*extenderv1.Victims{
"node1": {
Pods: []*v1.Pod{
{ObjectMeta: metav1.ObjectMeta{Name: "pod1", UID: "uid1"}},
{ObjectMeta: metav1.ObjectMeta{Name: "pod3", UID: "uid3"}},
st.MakePod().Name("pod1").UID("uid1").Obj(),
st.MakePod().Name("pod3").UID("uid3").Obj(),
},
NumPDBViolations: 1,
},
"node2": {
Pods: []*v1.Pod{
{ObjectMeta: metav1.ObjectMeta{Name: "pod2", UID: "uid2"}},
{ObjectMeta: metav1.ObjectMeta{Name: "pod4", UID: "uid4"}},
st.MakePod().Name("pod2").UID("uid2").Obj(),
st.MakePod().Name("pod4").UID("uid4").Obj(),
},
NumPDBViolations: 2,
},
@@ -496,24 +462,24 @@ func TestConvertToVictims(t *testing.T) {
},
nodeNames: []string{"node1", "node2"},
podsInNodeList: []*v1.Pod{
{ObjectMeta: metav1.ObjectMeta{Name: "pod1", UID: "uid1"}},
{ObjectMeta: metav1.ObjectMeta{Name: "pod2", UID: "uid2"}},
{ObjectMeta: metav1.ObjectMeta{Name: "pod3", UID: "uid3"}},
{ObjectMeta: metav1.ObjectMeta{Name: "pod4", UID: "uid4"}},
st.MakePod().Name("pod1").UID("uid1").Obj(),
st.MakePod().Name("pod2").UID("uid2").Obj(),
st.MakePod().Name("pod3").UID("uid3").Obj(),
st.MakePod().Name("pod4").UID("uid4").Obj(),
},
nodeInfos: nil,
want: map[string]*extenderv1.Victims{
"node1": {
Pods: []*v1.Pod{
{ObjectMeta: metav1.ObjectMeta{Name: "pod1", UID: "uid1"}},
{ObjectMeta: metav1.ObjectMeta{Name: "pod3", UID: "uid3"}},
st.MakePod().Name("pod1").UID("uid1").Obj(),
st.MakePod().Name("pod3").UID("uid3").Obj(),
},
NumPDBViolations: 1,
},
"node2": {
Pods: []*v1.Pod{
{ObjectMeta: metav1.ObjectMeta{Name: "pod2", UID: "uid2"}},
{ObjectMeta: metav1.ObjectMeta{Name: "pod4", UID: "uid4"}},
st.MakePod().Name("pod2").UID("uid2").Obj(),
st.MakePod().Name("pod4").UID("uid4").Obj(),
},
NumPDBViolations: 2,
},