diff --git a/pkg/scheduler/algorithm/priorities/balanced_resource_allocation_test.go b/pkg/scheduler/algorithm/priorities/balanced_resource_allocation_test.go index 4ee20680234..41f917bbf45 100644 --- a/pkg/scheduler/algorithm/priorities/balanced_resource_allocation_test.go +++ b/pkg/scheduler/algorithm/priorities/balanced_resource_allocation_test.go @@ -402,19 +402,34 @@ func TestBalancedResourceAllocation(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { nodeNameToInfo := schedulernodeinfo.CreateNodeNameToInfoMap(test.pods, test.nodes) - if len(test.pod.Spec.Volumes) > 0 { - maxVolumes := 5 - for _, info := range nodeNameToInfo { - info.TransientInfo.TransNodeInfo.AllocatableVolumesCount = getExistingVolumeCountForNode(info.Pods(), maxVolumes) - info.TransientInfo.TransNodeInfo.RequestedVolumes = len(test.pod.Spec.Volumes) + metadata := &priorityMetadata{ + nonZeroRequest: getNonZeroRequests(test.pod), + } + + for _, hasMeta := range []bool{true, false} { + if len(test.pod.Spec.Volumes) > 0 { + maxVolumes := 5 + for _, info := range nodeNameToInfo { + info.TransientInfo.TransNodeInfo.AllocatableVolumesCount = getExistingVolumeCountForNode(info.Pods(), maxVolumes) + info.TransientInfo.TransNodeInfo.RequestedVolumes = len(test.pod.Spec.Volumes) + } + } + + var function PriorityFunction + if hasMeta { + function = priorityFunction(BalancedResourceAllocationMap, nil, metadata) + } else { + function = priorityFunction(BalancedResourceAllocationMap, nil, nil) + } + + list, err := function(test.pod, nodeNameToInfo, test.nodes) + + if err != nil { + t.Errorf("unexpected error: %v", err) + } + if !reflect.DeepEqual(test.expectedList, list) { + t.Errorf("hasMeta %#v expected %#v, got %#v", hasMeta, test.expectedList, list) } - } - list, err := priorityFunction(BalancedResourceAllocationMap, nil, nil)(test.pod, nodeNameToInfo, test.nodes) - if err != nil { - t.Errorf("unexpected error: %v", err) - } - if !reflect.DeepEqual(test.expectedList, list) { - t.Errorf("expected %#v, got %#v", test.expectedList, list) } }) } diff --git a/pkg/scheduler/algorithm/priorities/resource_limits.go b/pkg/scheduler/algorithm/priorities/resource_limits.go index 8922007b1bb..994f4be0c2b 100644 --- a/pkg/scheduler/algorithm/priorities/resource_limits.go +++ b/pkg/scheduler/algorithm/priorities/resource_limits.go @@ -43,7 +43,7 @@ func ResourceLimitsPriorityMap(pod *v1.Pod, meta interface{}, nodeInfo *schedule // compute pod limits var podLimits *schedulernodeinfo.Resource - if priorityMeta, ok := meta.(*priorityMetadata); ok && priorityMeta != nil { + if priorityMeta, ok := meta.(*priorityMetadata); ok { // We were able to parse metadata, use podLimits from there. podLimits = priorityMeta.podLimits } else { diff --git a/pkg/scheduler/algorithm/priorities/resource_limits_test.go b/pkg/scheduler/algorithm/priorities/resource_limits_test.go index 96bf356da32..9354ddd34c0 100644 --- a/pkg/scheduler/algorithm/priorities/resource_limits_test.go +++ b/pkg/scheduler/algorithm/priorities/resource_limits_test.go @@ -140,21 +140,25 @@ func TestResourceLimitsPriority(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { nodeNameToInfo := schedulernodeinfo.CreateNodeNameToInfoMap(nil, test.nodes) + metadata := &priorityMetadata{ + podLimits: getResourceLimits(test.pod), + } for _, hasMeta := range []bool{true, false} { - var metadata *priorityMetadata + var function PriorityFunction if hasMeta { - metadata = &priorityMetadata{ - podLimits: getResourceLimits(test.pod), - } + function = priorityFunction(ResourceLimitsPriorityMap, nil, metadata) + } else { + function = priorityFunction(ResourceLimitsPriorityMap, nil, nil) } - list, err := priorityFunction(ResourceLimitsPriorityMap, nil, metadata)(test.pod, nodeNameToInfo, test.nodes) + list, err := function(test.pod, nodeNameToInfo, test.nodes) + if err != nil { t.Errorf("unexpected error: %v", err) } if !reflect.DeepEqual(test.expectedList, list) { - t.Errorf("expected %#v, got %#v", test.expectedList, list) + t.Errorf("hasMeta %#v expected %#v, got %#v", hasMeta, test.expectedList, list) } } })