@@ -24,7 +24,11 @@ import (
24
24
v1 "k8s.io/api/core/v1"
25
25
"k8s.io/apimachinery/pkg/api/resource"
26
26
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
27
+ utilfeature "k8s.io/apiserver/pkg/util/feature"
28
+ featuregatetesting "k8s.io/component-base/featuregate/testing"
29
+ "k8s.io/kubernetes/pkg/features"
27
30
st "k8s.io/kubernetes/pkg/scheduler/testing"
31
+ "k8s.io/utils/ptr"
28
32
)
29
33
30
34
func TestNodeAllocatableChange (t * testing.T ) {
@@ -334,11 +338,20 @@ func Test_podSchedulingPropertiesChange(t *testing.T) {
334
338
},
335
339
},
336
340
}
341
+ claimStatusA := v1.PodResourceClaimStatus {
342
+ Name : "my-claim" ,
343
+ ResourceClaimName : ptr .To ("claim" ),
344
+ }
345
+ claimStatusB := v1.PodResourceClaimStatus {
346
+ Name : "my-claim-2" ,
347
+ ResourceClaimName : ptr .To ("claim-2" ),
348
+ }
337
349
tests := []struct {
338
- name string
339
- newPod * v1.Pod
340
- oldPod * v1.Pod
341
- want []ClusterEvent
350
+ name string
351
+ newPod * v1.Pod
352
+ oldPod * v1.Pod
353
+ draDisabled bool
354
+ want []ClusterEvent
342
355
}{
343
356
{
344
357
name : "only label is updated" ,
@@ -388,9 +401,35 @@ func Test_podSchedulingPropertiesChange(t *testing.T) {
388
401
oldPod : st .MakePod ().Toleration ("key" ).Obj (),
389
402
want : []ClusterEvent {PodTolerationChange },
390
403
},
404
+ {
405
+ name : "pod claim statuses change, feature disabled" ,
406
+ draDisabled : true ,
407
+ newPod : st .MakePod ().ResourceClaimStatuses (claimStatusA ).Obj (),
408
+ oldPod : st .MakePod ().Obj (),
409
+ want : []ClusterEvent {assignedPodOtherUpdate },
410
+ },
411
+ {
412
+ name : "pod claim statuses change, feature enabled" ,
413
+ newPod : st .MakePod ().ResourceClaimStatuses (claimStatusA ).Obj (),
414
+ oldPod : st .MakePod ().Obj (),
415
+ want : []ClusterEvent {PodGeneratedResourceClaimChange },
416
+ },
417
+ {
418
+ name : "pod claim statuses swapped" ,
419
+ newPod : st .MakePod ().ResourceClaimStatuses (claimStatusA , claimStatusB ).Obj (),
420
+ oldPod : st .MakePod ().ResourceClaimStatuses (claimStatusB , claimStatusA ).Obj (),
421
+ want : []ClusterEvent {PodGeneratedResourceClaimChange },
422
+ },
423
+ {
424
+ name : "pod claim statuses extended" ,
425
+ newPod : st .MakePod ().ResourceClaimStatuses (claimStatusA , claimStatusB ).Obj (),
426
+ oldPod : st .MakePod ().ResourceClaimStatuses (claimStatusA ).Obj (),
427
+ want : []ClusterEvent {PodGeneratedResourceClaimChange },
428
+ },
391
429
}
392
430
for _ , tt := range tests {
393
431
t .Run (tt .name , func (t * testing.T ) {
432
+ featuregatetesting .SetFeatureGateDuringTest (t , utilfeature .DefaultFeatureGate , features .DynamicResourceAllocation , ! tt .draDisabled )
394
433
got := PodSchedulingPropertiesChange (tt .newPod , tt .oldPod )
395
434
if diff := cmp .Diff (tt .want , got ); diff != "" {
396
435
t .Errorf ("unexpected event is returned from podSchedulingPropertiesChange (-want, +got):\n %s" , diff )
0 commit comments