@@ -18,6 +18,7 @@ package podgc
18
18
19
19
import (
20
20
"context"
21
+ "fmt"
21
22
"sync"
22
23
"testing"
23
24
"time"
@@ -72,6 +73,7 @@ func TestGCTerminated(t *testing.T) {
72
73
deletedPodNames sets.String
73
74
}{
74
75
{
76
+ // case 1
75
77
pods : []nameToPhase {
76
78
{name : "a" , phase : v1 .PodFailed },
77
79
{name : "b" , phase : v1 .PodSucceeded },
@@ -81,6 +83,7 @@ func TestGCTerminated(t *testing.T) {
81
83
deletedPodNames : sets .NewString (),
82
84
},
83
85
{
86
+ // case 2
84
87
pods : []nameToPhase {
85
88
{name : "a" , phase : v1 .PodFailed },
86
89
{name : "b" , phase : v1 .PodSucceeded },
@@ -90,6 +93,7 @@ func TestGCTerminated(t *testing.T) {
90
93
deletedPodNames : sets .NewString ("a" , "b" ),
91
94
},
92
95
{
96
+ // case 3
93
97
pods : []nameToPhase {
94
98
{name : "a" , phase : v1 .PodRunning },
95
99
{name : "b" , phase : v1 .PodSucceeded },
@@ -99,6 +103,7 @@ func TestGCTerminated(t *testing.T) {
99
103
deletedPodNames : sets .NewString ("b" ),
100
104
},
101
105
{
106
+ // case 4
102
107
pods : []nameToPhase {
103
108
{name : "a" , phase : v1 .PodFailed },
104
109
{name : "b" , phase : v1 .PodSucceeded },
@@ -107,6 +112,7 @@ func TestGCTerminated(t *testing.T) {
107
112
deletedPodNames : sets .NewString ("a" ),
108
113
},
109
114
{
115
+ // case 5
110
116
pods : []nameToPhase {
111
117
{name : "a" , phase : v1 .PodFailed },
112
118
{name : "b" , phase : v1 .PodSucceeded },
@@ -117,33 +123,35 @@ func TestGCTerminated(t *testing.T) {
117
123
}
118
124
119
125
for i , test := range testCases {
120
- client := fake .NewSimpleClientset (& v1.NodeList {Items : []v1.Node {* testutil .NewNode ("node" )}})
121
- gcc , podInformer , _ := NewFromClient (client , test .threshold )
122
- deletedPodNames := make ([]string , 0 )
123
- var lock sync.Mutex
124
- gcc .deletePod = func (_ , name string ) error {
125
- lock .Lock ()
126
- defer lock .Unlock ()
127
- deletedPodNames = append (deletedPodNames , name )
128
- return nil
129
- }
126
+ t .Run (fmt .Sprintf ("case: %v" , i ), func (t * testing.T ) {
127
+ client := fake .NewSimpleClientset (& v1.NodeList {Items : []v1.Node {* testutil .NewNode ("node" )}})
128
+ gcc , podInformer , _ := NewFromClient (client , test .threshold )
129
+ deletedPodNames := make ([]string , 0 )
130
+ var lock sync.Mutex
131
+ gcc .deletePod = func (_ , name string ) error {
132
+ lock .Lock ()
133
+ defer lock .Unlock ()
134
+ deletedPodNames = append (deletedPodNames , name )
135
+ return nil
136
+ }
130
137
131
- creationTime := time .Unix (0 , 0 )
132
- for _ , pod := range test .pods {
133
- creationTime = creationTime .Add (1 * time .Hour )
134
- podInformer .Informer ().GetStore ().Add (& v1.Pod {
135
- ObjectMeta : metav1.ObjectMeta {Name : pod .name , CreationTimestamp : metav1.Time {Time : creationTime }},
136
- Status : v1.PodStatus {Phase : pod .phase },
137
- Spec : v1.PodSpec {NodeName : "node" },
138
- })
139
- }
138
+ creationTime := time .Unix (0 , 0 )
139
+ for _ , pod := range test .pods {
140
+ creationTime = creationTime .Add (1 * time .Hour )
141
+ podInformer .Informer ().GetStore ().Add (& v1.Pod {
142
+ ObjectMeta : metav1.ObjectMeta {Name : pod .name , CreationTimestamp : metav1.Time {Time : creationTime }},
143
+ Status : v1.PodStatus {Phase : pod .phase },
144
+ Spec : v1.PodSpec {NodeName : "node" },
145
+ })
146
+ }
140
147
141
- gcc .gc ()
148
+ gcc .gc ()
142
149
143
- if pass := compareStringSetToList (test .deletedPodNames , deletedPodNames ); ! pass {
144
- t .Errorf ("[%v]pod's deleted expected and actual did not match.\n \t expected: %v\n \t actual: %v" ,
145
- i , test .deletedPodNames .List (), deletedPodNames )
146
- }
150
+ if pass := compareStringSetToList (test .deletedPodNames , deletedPodNames ); ! pass {
151
+ t .Errorf ("[%v]pod's deleted expected and actual did not match.\n \t expected: %v\n \t actual: %v" ,
152
+ i , test .deletedPodNames .List (), deletedPodNames )
153
+ }
154
+ })
147
155
}
148
156
}
149
157
@@ -403,38 +411,40 @@ func TestGCUnscheduledTerminating(t *testing.T) {
403
411
}
404
412
405
413
for i , test := range testCases {
406
- client := fake .NewSimpleClientset ()
407
- gcc , podInformer , _ := NewFromClient (client , - 1 )
408
- deletedPodNames := make ([]string , 0 )
409
- var lock sync.Mutex
410
- gcc .deletePod = func (_ , name string ) error {
411
- lock .Lock ()
412
- defer lock .Unlock ()
413
- deletedPodNames = append (deletedPodNames , name )
414
- return nil
415
- }
414
+ t .Run (test .name , func (t * testing.T ) {
415
+ client := fake .NewSimpleClientset ()
416
+ gcc , podInformer , _ := NewFromClient (client , - 1 )
417
+ deletedPodNames := make ([]string , 0 )
418
+ var lock sync.Mutex
419
+ gcc .deletePod = func (_ , name string ) error {
420
+ lock .Lock ()
421
+ defer lock .Unlock ()
422
+ deletedPodNames = append (deletedPodNames , name )
423
+ return nil
424
+ }
416
425
417
- creationTime := time .Unix (0 , 0 )
418
- for _ , pod := range test .pods {
419
- creationTime = creationTime .Add (1 * time .Hour )
420
- podInformer .Informer ().GetStore ().Add (& v1.Pod {
421
- ObjectMeta : metav1.ObjectMeta {Name : pod .name , CreationTimestamp : metav1.Time {Time : creationTime },
422
- DeletionTimestamp : pod .deletionTimeStamp },
423
- Status : v1.PodStatus {Phase : pod .phase },
424
- Spec : v1.PodSpec {NodeName : pod .nodeName },
425
- })
426
- }
426
+ creationTime := time .Unix (0 , 0 )
427
+ for _ , pod := range test .pods {
428
+ creationTime = creationTime .Add (1 * time .Hour )
429
+ podInformer .Informer ().GetStore ().Add (& v1.Pod {
430
+ ObjectMeta : metav1.ObjectMeta {Name : pod .name , CreationTimestamp : metav1.Time {Time : creationTime },
431
+ DeletionTimestamp : pod .deletionTimeStamp },
432
+ Status : v1.PodStatus {Phase : pod .phase },
433
+ Spec : v1.PodSpec {NodeName : pod .nodeName },
434
+ })
435
+ }
427
436
428
- pods , err := podInformer .Lister ().List (labels .Everything ())
429
- if err != nil {
430
- t .Errorf ("Error while listing all Pods: %v" , err )
431
- return
432
- }
433
- gcc .gcUnscheduledTerminating (pods )
437
+ pods , err := podInformer .Lister ().List (labels .Everything ())
438
+ if err != nil {
439
+ t .Errorf ("Error while listing all Pods: %v" , err )
440
+ return
441
+ }
442
+ gcc .gcUnscheduledTerminating (pods )
434
443
435
- if pass := compareStringSetToList (test .deletedPodNames , deletedPodNames ); ! pass {
436
- t .Errorf ("[%v]pod's deleted expected and actual did not match.\n \t expected: %v\n \t actual: %v, test: %v" ,
437
- i , test .deletedPodNames .List (), deletedPodNames , test .name )
438
- }
444
+ if pass := compareStringSetToList (test .deletedPodNames , deletedPodNames ); ! pass {
445
+ t .Errorf ("[%v]pod's deleted expected and actual did not match.\n \t expected: %v\n \t actual: %v, test: %v" ,
446
+ i , test .deletedPodNames .List (), deletedPodNames , test .name )
447
+ }
448
+ })
439
449
}
440
450
}
0 commit comments