@@ -42,6 +42,7 @@ import (
42
42
// api.Registry.GroupOrDie(v1.GroupName).GroupVersions[0].String() is changed
43
43
// to "v1"?
44
44
45
+ runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
45
46
_ "k8s.io/kubernetes/pkg/apis/core/install"
46
47
"k8s.io/kubernetes/pkg/features"
47
48
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
@@ -2421,3 +2422,70 @@ func TestTruncatePodHostname(t *testing.T) {
2421
2422
assert .Equal (t , test .output , output )
2422
2423
}
2423
2424
}
2425
+
2426
+ func TestPodResourcesAreReclaimed (t * testing.T ) {
2427
+
2428
+ type args struct {
2429
+ pod * v1.Pod
2430
+ status v1.PodStatus
2431
+ runtimeStatus kubecontainer.PodStatus
2432
+ }
2433
+ tests := []struct {
2434
+ name string
2435
+ args args
2436
+ want bool
2437
+ }{
2438
+ {
2439
+ "pod with running containers" ,
2440
+ args {
2441
+ pod : & v1.Pod {},
2442
+ status : v1.PodStatus {
2443
+ ContainerStatuses : []v1.ContainerStatus {
2444
+ runningState ("containerA" ),
2445
+ runningState ("containerB" ),
2446
+ },
2447
+ },
2448
+ },
2449
+ false ,
2450
+ },
2451
+ {
2452
+ "pod with containers in runtime cache" ,
2453
+ args {
2454
+ pod : & v1.Pod {},
2455
+ status : v1.PodStatus {},
2456
+ runtimeStatus : kubecontainer.PodStatus {
2457
+ ContainerStatuses : []* kubecontainer.Status {
2458
+ {},
2459
+ },
2460
+ },
2461
+ },
2462
+ false ,
2463
+ },
2464
+ {
2465
+ "pod with sandbox present" ,
2466
+ args {
2467
+ pod : & v1.Pod {},
2468
+ status : v1.PodStatus {},
2469
+ runtimeStatus : kubecontainer.PodStatus {
2470
+ SandboxStatuses : []* runtimeapi.PodSandboxStatus {
2471
+ {},
2472
+ },
2473
+ },
2474
+ },
2475
+ false ,
2476
+ },
2477
+ }
2478
+
2479
+ testKubelet := newTestKubelet (t , false )
2480
+ defer testKubelet .Cleanup ()
2481
+ kl := testKubelet .kubelet
2482
+
2483
+ for _ , tt := range tests {
2484
+ t .Run (tt .name , func (t * testing.T ) {
2485
+ testKubelet .fakeRuntime .PodStatus = tt .args .runtimeStatus
2486
+ if got := kl .PodResourcesAreReclaimed (tt .args .pod , tt .args .status ); got != tt .want {
2487
+ t .Errorf ("PodResourcesAreReclaimed() = %v, want %v" , got , tt .want )
2488
+ }
2489
+ })
2490
+ }
2491
+ }
0 commit comments