@@ -19,6 +19,7 @@ package taints
19
19
import (
20
20
"context"
21
21
"fmt"
22
+ "slices"
22
23
"strconv"
23
24
"sync/atomic"
24
25
"testing"
@@ -44,7 +45,7 @@ func TestMarkNodes(t *testing.T) {
44
45
defer setConflictRetryInterval (setConflictRetryInterval (time .Millisecond ))
45
46
node := BuildTestNode ("node" , 1000 , 1000 )
46
47
fakeClient := buildFakeClientWithConflicts (t , node )
47
- err := MarkToBeDeleted (node , fakeClient , false )
48
+ _ , err := MarkToBeDeleted (node , fakeClient , false )
48
49
assert .NoError (t , err )
49
50
50
51
updatedNode := getNode (t , fakeClient , "node" )
@@ -56,7 +57,7 @@ func TestSoftMarkNodes(t *testing.T) {
56
57
defer setConflictRetryInterval (setConflictRetryInterval (time .Millisecond ))
57
58
node := BuildTestNode ("node" , 1000 , 1000 )
58
59
fakeClient := buildFakeClientWithConflicts (t , node )
59
- err := MarkDeletionCandidate (node , fakeClient )
60
+ _ , err := MarkDeletionCandidate (node , fakeClient )
60
61
assert .NoError (t , err )
61
62
62
63
updatedNode := getNode (t , fakeClient , "node" )
@@ -115,7 +116,7 @@ func TestQueryNodes(t *testing.T) {
115
116
defer setConflictRetryInterval (setConflictRetryInterval (time .Millisecond ))
116
117
node := BuildTestNode ("node" , 1000 , 1000 )
117
118
fakeClient := buildFakeClientWithConflicts (t , node )
118
- err := MarkToBeDeleted (node , fakeClient , false )
119
+ _ , err := MarkToBeDeleted (node , fakeClient , false )
119
120
assert .NoError (t , err )
120
121
121
122
updatedNode := getNode (t , fakeClient , "node" )
@@ -131,7 +132,7 @@ func TestSoftQueryNodes(t *testing.T) {
131
132
defer setConflictRetryInterval (setConflictRetryInterval (time .Millisecond ))
132
133
node := BuildTestNode ("node" , 1000 , 1000 )
133
134
fakeClient := buildFakeClientWithConflicts (t , node )
134
- err := MarkDeletionCandidate (node , fakeClient )
135
+ _ , err := MarkDeletionCandidate (node , fakeClient )
135
136
assert .NoError (t , err )
136
137
137
138
updatedNode := getNode (t , fakeClient , "node" )
@@ -161,20 +162,21 @@ func TestCleanNodes(t *testing.T) {
161
162
addTaintsToSpec (node , taints , false )
162
163
fakeClient := buildFakeClientWithConflicts (t , node )
163
164
164
- updatedNode := getNode (t , fakeClient , "node" )
165
- assert .True (t , HasToBeDeletedTaint (updatedNode ))
166
- assert .True (t , HasTaint (updatedNode , "other-taint" ))
167
- assert .False (t , updatedNode .Spec .Unschedulable )
165
+ apiNode := getNode (t , fakeClient , "node" )
166
+ assert .True (t , HasToBeDeletedTaint (apiNode ))
167
+ assert .True (t , HasTaint (apiNode , "other-taint" ))
168
+ assert .False (t , apiNode .Spec .Unschedulable )
168
169
169
- cleaned , err := CleanToBeDeleted (node , fakeClient , false )
170
+ updatedNode , err := CleanToBeDeleted (node , fakeClient , false )
171
+ cleaned := ! slices .Equal (updatedNode .Spec .Taints , node .Spec .Taints )
170
172
assert .True (t , cleaned )
171
173
assert .NoError (t , err )
172
174
173
- updatedNode = getNode (t , fakeClient , "node" )
175
+ apiNode = getNode (t , fakeClient , "node" )
174
176
assert .NoError (t , err )
175
- assert .False (t , HasToBeDeletedTaint (updatedNode ))
176
- assert .True (t , HasTaint (updatedNode , "other-taint" ))
177
- assert .False (t , updatedNode .Spec .Unschedulable )
177
+ assert .False (t , HasToBeDeletedTaint (apiNode ))
178
+ assert .True (t , HasTaint (apiNode , "other-taint" ))
179
+ assert .False (t , apiNode .Spec .Unschedulable )
178
180
}
179
181
180
182
func TestCleanNodesWithCordon (t * testing.T ) {
@@ -195,20 +197,21 @@ func TestCleanNodesWithCordon(t *testing.T) {
195
197
addTaintsToSpec (node , taints , true )
196
198
fakeClient := buildFakeClientWithConflicts (t , node )
197
199
198
- updatedNode := getNode (t , fakeClient , "node" )
199
- assert .True (t , HasToBeDeletedTaint (updatedNode ))
200
- assert .True (t , HasTaint (updatedNode , "other-taint" ))
201
- assert .True (t , updatedNode .Spec .Unschedulable )
200
+ apiNode := getNode (t , fakeClient , "node" )
201
+ assert .True (t , HasToBeDeletedTaint (apiNode ))
202
+ assert .True (t , HasTaint (apiNode , "other-taint" ))
203
+ assert .True (t , apiNode .Spec .Unschedulable )
202
204
203
- cleaned , err := CleanToBeDeleted (node , fakeClient , true )
205
+ updatedNode , err := CleanToBeDeleted (node , fakeClient , true )
206
+ cleaned := ! slices .Equal (updatedNode .Spec .Taints , node .Spec .Taints )
204
207
assert .True (t , cleaned )
205
208
assert .NoError (t , err )
206
209
207
- updatedNode = getNode (t , fakeClient , "node" )
210
+ apiNode = getNode (t , fakeClient , "node" )
208
211
assert .NoError (t , err )
209
- assert .False (t , HasToBeDeletedTaint (updatedNode ))
210
- assert .True (t , HasTaint (updatedNode , "other-taint" ))
211
- assert .False (t , updatedNode .Spec .Unschedulable )
212
+ assert .False (t , HasToBeDeletedTaint (apiNode ))
213
+ assert .True (t , HasTaint (apiNode , "other-taint" ))
214
+ assert .False (t , apiNode .Spec .Unschedulable )
212
215
}
213
216
214
217
func TestCleanNodesWithCordonOnOff (t * testing.T ) {
@@ -229,20 +232,21 @@ func TestCleanNodesWithCordonOnOff(t *testing.T) {
229
232
addTaintsToSpec (node , taints , true )
230
233
fakeClient := buildFakeClientWithConflicts (t , node )
231
234
232
- updatedNode := getNode (t , fakeClient , "node" )
233
- assert .True (t , HasToBeDeletedTaint (updatedNode ))
234
- assert .True (t , HasTaint (updatedNode , "other-taint" ))
235
- assert .True (t , updatedNode .Spec .Unschedulable )
235
+ apiNode := getNode (t , fakeClient , "node" )
236
+ assert .True (t , HasToBeDeletedTaint (apiNode ))
237
+ assert .True (t , HasTaint (apiNode , "other-taint" ))
238
+ assert .True (t , apiNode .Spec .Unschedulable )
236
239
237
- cleaned , err := CleanToBeDeleted (node , fakeClient , false )
240
+ updatedNode , err := CleanToBeDeleted (node , fakeClient , false )
241
+ cleaned := ! slices .Equal (updatedNode .Spec .Taints , node .Spec .Taints )
238
242
assert .True (t , cleaned )
239
243
assert .NoError (t , err )
240
244
241
- updatedNode = getNode (t , fakeClient , "node" )
245
+ apiNode = getNode (t , fakeClient , "node" )
242
246
assert .NoError (t , err )
243
- assert .False (t , HasToBeDeletedTaint (updatedNode ))
244
- assert .True (t , HasTaint (updatedNode , "other-taint" ))
245
- assert .True (t , updatedNode .Spec .Unschedulable )
247
+ assert .False (t , HasToBeDeletedTaint (apiNode ))
248
+ assert .True (t , HasTaint (apiNode , "other-taint" ))
249
+ assert .True (t , apiNode .Spec .Unschedulable )
246
250
}
247
251
248
252
func TestSoftCleanNodes (t * testing.T ) {
@@ -263,18 +267,19 @@ func TestSoftCleanNodes(t *testing.T) {
263
267
addTaintsToSpec (node , taints , false )
264
268
fakeClient := buildFakeClientWithConflicts (t , node )
265
269
266
- updatedNode := getNode (t , fakeClient , "node" )
267
- assert .True (t , HasDeletionCandidateTaint (updatedNode ))
268
- assert .True (t , HasTaint (updatedNode , "other-taint" ))
270
+ apiNode := getNode (t , fakeClient , "node" )
271
+ assert .True (t , HasDeletionCandidateTaint (apiNode ))
272
+ assert .True (t , HasTaint (apiNode , "other-taint" ))
269
273
270
- cleaned , err := CleanDeletionCandidate (node , fakeClient )
274
+ updatedNode , err := CleanDeletionCandidate (node , fakeClient )
275
+ cleaned := ! slices .Equal (updatedNode .Spec .Taints , node .Spec .Taints )
271
276
assert .True (t , cleaned )
272
277
assert .NoError (t , err )
273
278
274
- updatedNode = getNode (t , fakeClient , "node" )
279
+ apiNode = getNode (t , fakeClient , "node" )
275
280
assert .NoError (t , err )
276
- assert .False (t , HasDeletionCandidateTaint (updatedNode ))
277
- assert .True (t , HasTaint (updatedNode , "other-taint" ))
281
+ assert .False (t , HasDeletionCandidateTaint (apiNode ))
282
+ assert .True (t , HasTaint (apiNode , "other-taint" ))
278
283
}
279
284
280
285
func TestCleanAllToBeDeleted (t * testing.T ) {
@@ -768,11 +773,11 @@ func TestAddTaints(t *testing.T) {
768
773
Effect : apiv1 .TaintEffectNoSchedule ,
769
774
}
770
775
}
771
- err := AddTaints (n , fakeClient , newTaints , false )
776
+ updatedNode , err := AddTaints (n , fakeClient , newTaints , false )
772
777
assert .NoError (t , err )
773
778
apiNode := getNode (t , fakeClient , "node" )
774
779
for _ , want := range tc .wantTaints {
775
- assert .True (t , HasTaint (n , want ))
780
+ assert .True (t , HasTaint (updatedNode , want ))
776
781
assert .True (t , HasTaint (apiNode , want ))
777
782
}
778
783
})
@@ -829,7 +834,8 @@ func TestCleanTaints(t *testing.T) {
829
834
n .Spec .Taints = append ([]apiv1.Taint {}, existingTaints ... )
830
835
fakeClient := buildFakeClient (t , n )
831
836
832
- modified , err := CleanTaints (n , fakeClient , tc .taintsToRemove , false )
837
+ updatedNode , err := CleanTaints (n , fakeClient , tc .taintsToRemove , false )
838
+ modified := ! slices .Equal (updatedNode .Spec .Taints , n .Spec .Taints )
833
839
assert .NoError (t , err )
834
840
assert .Equal (t , tc .wantModified , modified )
835
841
@@ -842,7 +848,7 @@ func TestCleanTaints(t *testing.T) {
842
848
843
849
for _ , removed := range tc .taintsToRemove {
844
850
assert .False (t , HasTaint (apiNode , removed ))
845
- assert .False (t , HasTaint (n , removed ), "Taint %s should have been removed from local node object" , removed )
851
+ assert .False (t , HasTaint (updatedNode , removed ), "Taint %s should have been removed from local node object" , removed )
846
852
}
847
853
})
848
854
}
0 commit comments