Skip to content

Commit

Permalink
add unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
KunWuLuan authored and k8s-infra-cherrypick-robot committed Jun 19, 2024
1 parent 5e9c55d commit ca90f0e
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 60 deletions.
8 changes: 4 additions & 4 deletions pkg/scheduler/flavorassigner/flavorassigner.go
Original file line number Diff line number Diff line change
Expand Up @@ -401,10 +401,10 @@ func (a *FlavorAssigner) findFlavorForPodSetResource(

// We will only check against the flavors' labels for the resource.
selector := flavorSelector(podSpec, resourceGroup.LabelKeys)
assignedFlavorIdx := -1
attemptedFlavorIdx := -1
idx := a.wl.LastAssignment.NextFlavorToTryForPodSetResource(psID, resName)
for ; idx < len(resourceGroup.Flavors); idx++ {
assignedFlavorIdx = idx
attemptedFlavorIdx = idx
flvQuotas := resourceGroup.Flavors[idx]
flavor, exist := a.resourceFlavors[flvQuotas.Name]
if !exist {
Expand Down Expand Up @@ -476,11 +476,11 @@ func (a *FlavorAssigner) findFlavorForPodSetResource(

if features.Enabled(features.FlavorFungibility) {
for _, assignment := range bestAssignment {
if assignedFlavorIdx == len(resourceGroup.Flavors)-1 {
if attemptedFlavorIdx == len(resourceGroup.Flavors)-1 {
// we have reach the last flavor, try from the first flavor next time
assignment.TriedFlavorIdx = -1
} else {
assignment.TriedFlavorIdx = assignedFlavorIdx
assignment.TriedFlavorIdx = attemptedFlavorIdx
}
}
if bestAssignmentMode == Fit {
Expand Down
112 changes: 56 additions & 56 deletions pkg/scheduler/flavorassigner/flavorassigner_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ func TestAssignFlavors(t *testing.T) {
{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "default", Mode: Fit},
corev1.ResourceMemory: {Name: "default", Mode: Fit},
corev1.ResourceCPU: {Name: "default", Mode: Fit, TriedFlavorIdx: -1},
corev1.ResourceMemory: {Name: "default", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("1000m"),
Expand Down Expand Up @@ -137,7 +137,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "tainted", Mode: Fit},
corev1.ResourceCPU: {Name: "tainted", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("1000m"),
Expand Down Expand Up @@ -176,7 +176,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "default", Mode: Preempt},
corev1.ResourceCPU: {Name: "default", Mode: Preempt, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("2000m"),
Expand Down Expand Up @@ -243,8 +243,8 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "two", Mode: Fit},
corev1.ResourceMemory: {Name: "b_one", Mode: Fit},
corev1.ResourceCPU: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
corev1.ResourceMemory: {Name: "b_one", Mode: Fit, TriedFlavorIdx: 0},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("3000m"),
Expand Down Expand Up @@ -364,9 +364,9 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "two", Mode: Fit},
corev1.ResourceMemory: {Name: "two", Mode: Fit},
"example.com/gpu": {Name: "b_one", Mode: Fit},
corev1.ResourceCPU: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
corev1.ResourceMemory: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
"example.com/gpu": {Name: "b_one", Mode: Fit, TriedFlavorIdx: 0},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("3000m"),
Expand Down Expand Up @@ -457,9 +457,9 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "two", Mode: Fit},
corev1.ResourceMemory: {Name: "two", Mode: Preempt},
"example.com/gpu": {Name: "b_one", Mode: Preempt},
corev1.ResourceCPU: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
corev1.ResourceMemory: {Name: "two", Mode: Preempt, TriedFlavorIdx: -1},
"example.com/gpu": {Name: "b_one", Mode: Preempt, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("3000m"),
Expand Down Expand Up @@ -566,7 +566,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "two", Mode: Fit},
corev1.ResourceCPU: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("3000m"),
Expand Down Expand Up @@ -612,7 +612,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "two", Mode: Fit},
corev1.ResourceCPU: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("3000m"),
Expand Down Expand Up @@ -690,7 +690,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "two", Mode: Fit},
corev1.ResourceCPU: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("1000m"),
Expand Down Expand Up @@ -763,8 +763,8 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "two", Mode: Fit},
corev1.ResourceMemory: {Name: "two", Mode: Fit},
corev1.ResourceCPU: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
corev1.ResourceMemory: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("1000m"),
Expand Down Expand Up @@ -848,7 +848,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "one", Mode: Fit},
corev1.ResourceCPU: {Name: "one", Mode: Fit, TriedFlavorIdx: 0},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("1000m"),
Expand Down Expand Up @@ -965,7 +965,7 @@ func TestAssignFlavors(t *testing.T) {
{
Name: "driver",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "two", Mode: Fit},
corev1.ResourceCPU: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("5000m"),
Expand All @@ -975,7 +975,7 @@ func TestAssignFlavors(t *testing.T) {
{
Name: "worker",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "one", Mode: Fit},
corev1.ResourceCPU: {Name: "one", Mode: Fit, TriedFlavorIdx: 0},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("3000m"),
Expand Down Expand Up @@ -1030,8 +1030,8 @@ func TestAssignFlavors(t *testing.T) {
{
Name: "driver",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "default", Mode: Fit},
corev1.ResourceMemory: {Name: "default", Mode: Fit},
corev1.ResourceCPU: {Name: "default", Mode: Fit, TriedFlavorIdx: -1},
corev1.ResourceMemory: {Name: "default", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("4000m"),
Expand All @@ -1042,8 +1042,8 @@ func TestAssignFlavors(t *testing.T) {
{
Name: "worker",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "default", Mode: Fit},
corev1.ResourceMemory: {Name: "default", Mode: Fit},
corev1.ResourceCPU: {Name: "default", Mode: Fit, TriedFlavorIdx: -1},
corev1.ResourceMemory: {Name: "default", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("6000m"),
Expand Down Expand Up @@ -1133,7 +1133,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "one", Mode: Preempt},
corev1.ResourceCPU: {Name: "one", Mode: Preempt, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("2000m"),
Expand Down Expand Up @@ -1176,7 +1176,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "one", Mode: Preempt},
corev1.ResourceCPU: {Name: "one", Mode: Preempt, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("2000m"),
Expand Down Expand Up @@ -1226,7 +1226,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "one", Mode: Preempt},
corev1.ResourceCPU: {Name: "one", Mode: Preempt, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("2000m"),
Expand Down Expand Up @@ -1286,7 +1286,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "two", Mode: Preempt},
corev1.ResourceCPU: {Name: "two", Mode: Preempt, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("2000m"),
Expand Down Expand Up @@ -1350,7 +1350,7 @@ func TestAssignFlavors(t *testing.T) {
{
Name: "launcher",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "one", Mode: Preempt},
corev1.ResourceCPU: {Name: "one", Mode: Preempt, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("2000m"),
Expand All @@ -1366,7 +1366,7 @@ func TestAssignFlavors(t *testing.T) {
{
Name: "workers",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "tainted", Mode: Preempt},
corev1.ResourceCPU: {Name: "tainted", Mode: Preempt, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("10000m"),
Expand Down Expand Up @@ -1475,8 +1475,8 @@ func TestAssignFlavors(t *testing.T) {
Name: "main",
Flavors: ResourceAssignment{

corev1.ResourceCPU: &FlavorAssignment{Name: "default", Mode: Fit},
corev1.ResourcePods: &FlavorAssignment{Name: "default", Mode: Fit},
corev1.ResourceCPU: &FlavorAssignment{Name: "default", Mode: Fit, TriedFlavorIdx: -1},
corev1.ResourcePods: &FlavorAssignment{Name: "default", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("3000m"),
Expand Down Expand Up @@ -1555,8 +1555,8 @@ func TestAssignFlavors(t *testing.T) {
Name: "main",
Flavors: ResourceAssignment{

corev1.ResourceCPU: &FlavorAssignment{Name: "default", Mode: Fit},
corev1.ResourcePods: &FlavorAssignment{Name: "default", Mode: Fit},
corev1.ResourceCPU: &FlavorAssignment{Name: "default", Mode: Fit, TriedFlavorIdx: -1},
corev1.ResourcePods: &FlavorAssignment{Name: "default", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("3000m"),
Expand Down Expand Up @@ -1609,8 +1609,8 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "one", Mode: Preempt},
corev1.ResourcePods: {Name: "one", Mode: Fit},
corev1.ResourceCPU: {Name: "one", Mode: Preempt, TriedFlavorIdx: 0},
corev1.ResourcePods: {Name: "one", Mode: Fit, TriedFlavorIdx: 0},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("9000m"),
Expand Down Expand Up @@ -1657,8 +1657,8 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "two", Mode: Fit},
corev1.ResourcePods: {Name: "two", Mode: Fit},
corev1.ResourceCPU: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
corev1.ResourcePods: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("9000m"),
Expand Down Expand Up @@ -1715,8 +1715,8 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "one", Mode: Fit},
corev1.ResourcePods: {Name: "one", Mode: Fit},
corev1.ResourceCPU: {Name: "one", Mode: Fit, TriedFlavorIdx: -1},
corev1.ResourcePods: {Name: "one", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("9000m"),
Expand Down Expand Up @@ -1774,8 +1774,8 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "two", Mode: Fit},
corev1.ResourcePods: {Name: "two", Mode: Fit},
corev1.ResourceCPU: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
corev1.ResourcePods: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("9000m"),
Expand Down Expand Up @@ -1831,8 +1831,8 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "one", Mode: Fit},
corev1.ResourcePods: {Name: "one", Mode: Fit},
corev1.ResourceCPU: {Name: "one", Mode: Fit, TriedFlavorIdx: 0},
corev1.ResourcePods: {Name: "one", Mode: Fit, TriedFlavorIdx: 0},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("9000m"),
Expand Down Expand Up @@ -1890,7 +1890,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "one", Mode: Preempt},
corev1.ResourceCPU: {Name: "one", Mode: Preempt, TriedFlavorIdx: 0},
},
Status: &Status{
reasons: []string{"insufficient unused quota in cohort for cpu in flavor one, 10 more needed"},
Expand Down Expand Up @@ -1952,7 +1952,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "one", Mode: Preempt},
corev1.ResourceCPU: {Name: "one", Mode: Preempt, TriedFlavorIdx: 0},
},
Status: &Status{
reasons: []string{"insufficient unused quota in cohort for cpu in flavor one, 10 more needed"},
Expand Down Expand Up @@ -2013,7 +2013,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "two", Mode: Fit},
corev1.ResourceCPU: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("12000m"),
Expand Down Expand Up @@ -2127,8 +2127,8 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "two", Mode: Fit},
corev1.ResourcePods: {Name: "two", Mode: Fit},
corev1.ResourceCPU: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
corev1.ResourcePods: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("9000m"),
Expand Down Expand Up @@ -2195,8 +2195,8 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "one", Mode: Fit},
corev1.ResourcePods: {Name: "one", Mode: Fit},
corev1.ResourceCPU: {Name: "one", Mode: Fit, TriedFlavorIdx: -1},
corev1.ResourcePods: {Name: "one", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("9000m"),
Expand Down Expand Up @@ -2246,8 +2246,8 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "one", Mode: Preempt},
corev1.ResourcePods: {Name: "one", Mode: Fit},
corev1.ResourceCPU: {Name: "one", Mode: Preempt, TriedFlavorIdx: -1},
corev1.ResourcePods: {Name: "one", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("9000m"),
Expand Down Expand Up @@ -2309,7 +2309,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "one", Mode: Preempt},
corev1.ResourceCPU: {Name: "one", Mode: Preempt, TriedFlavorIdx: 0},
},
Status: &Status{
reasons: []string{"insufficient unused quota in cohort for cpu in flavor one, 10 more needed"},
Expand Down Expand Up @@ -2368,7 +2368,7 @@ func TestAssignFlavors(t *testing.T) {
PodSets: []PodSetAssignment{{
Name: "main",
Flavors: ResourceAssignment{
corev1.ResourceCPU: {Name: "two", Mode: Fit},
corev1.ResourceCPU: {Name: "two", Mode: Fit, TriedFlavorIdx: -1},
},
Requests: corev1.ResourceList{
corev1.ResourceCPU: resource.MustParse("12"),
Expand Down Expand Up @@ -2409,7 +2409,7 @@ func TestAssignFlavors(t *testing.T) {
t.Errorf("e.assignFlavors(_).RepresentativeMode()=%s, want %s", repMode, tc.wantRepMode)
}

if diff := cmp.Diff(tc.wantAssignment, assignment, cmpopts.IgnoreUnexported(Assignment{}, FlavorAssignment{}), cmpopts.IgnoreFields(Assignment{}, "LastState"), cmpopts.IgnoreFields(FlavorAssignment{}, "TriedFlavorIdx")); diff != "" {
if diff := cmp.Diff(tc.wantAssignment, assignment, cmpopts.IgnoreUnexported(Assignment{}, FlavorAssignment{}), cmpopts.IgnoreFields(Assignment{}, "LastState")); diff != "" {
t.Errorf("Unexpected assignment (-want,+got):\n%s", diff)
}
})
Expand Down

0 comments on commit ca90f0e

Please sign in to comment.