@@ -21,6 +21,7 @@ import (
21
21
"fmt"
22
22
"testing"
23
23
24
+ corev1 "k8s.io/api/core/v1"
24
25
"k8s.io/apimachinery/pkg/api/resource"
25
26
26
27
nrtv1alpha2 "github.com/k8stopologyawareschedwg/noderesourcetopology-api/pkg/apis/topology/v1alpha2"
@@ -31,6 +32,7 @@ func TestEqualZones(t *testing.T) {
31
32
name string
32
33
data1 nrtv1alpha2.ZoneList
33
34
data2 nrtv1alpha2.ZoneList
35
+ isReboot bool
34
36
expected bool
35
37
}{
36
38
{
@@ -185,10 +187,164 @@ func TestEqualZones(t *testing.T) {
185
187
},
186
188
expected : false ,
187
189
},
190
+ {
191
+ name : "with memory deviation but total is equal on node level - reboot test" ,
192
+ isReboot : true , // because we don't want the NUMA level check to fail
193
+ data1 : nrtv1alpha2.ZoneList {
194
+ {
195
+ Name : "Zone-000" ,
196
+ Resources : nrtv1alpha2.ResourceInfoList {
197
+ {
198
+ Name : "foo" ,
199
+ Capacity : resource .MustParse ("2" ),
200
+ Allocatable : resource .MustParse ("2" ),
201
+ Available : resource .MustParse ("2" ),
202
+ },
203
+ {
204
+ Name : string (corev1 .ResourceMemory ),
205
+ Capacity : resource .MustParse ("154525950" ),
206
+ Allocatable : resource .MustParse ("154525950" ),
207
+ Available : resource .MustParse ("154000000" ),
208
+ },
209
+ },
210
+ },
211
+ {
212
+ Name : "Zone-001" ,
213
+ Resources : nrtv1alpha2.ResourceInfoList {
214
+ {
215
+ Name : string (corev1 .ResourceMemory ),
216
+ Capacity : resource .MustParse ("100000000" ),
217
+ Allocatable : resource .MustParse ("100000000" ),
218
+ Available : resource .MustParse ("100000000" ),
219
+ },
220
+ {
221
+ Name : "foo" ,
222
+ Capacity : resource .MustParse ("2" ),
223
+ Allocatable : resource .MustParse ("2" ),
224
+ Available : resource .MustParse ("2" ),
225
+ },
226
+ },
227
+ },
228
+ },
229
+ data2 : nrtv1alpha2.ZoneList {
230
+ {
231
+ Name : "Zone-001" ,
232
+ Resources : nrtv1alpha2.ResourceInfoList {
233
+ {
234
+ Name : "foo" ,
235
+ Capacity : resource .MustParse ("2" ),
236
+ Allocatable : resource .MustParse ("2" ),
237
+ Available : resource .MustParse ("2" ),
238
+ },
239
+ {
240
+ Name : string (corev1 .ResourceMemory ),
241
+ Capacity : resource .MustParse ("154525950" ),
242
+ Allocatable : resource .MustParse ("154525950" ),
243
+ Available : resource .MustParse ("154000000" ),
244
+ },
245
+ },
246
+ },
247
+ {
248
+ Name : "Zone-000" ,
249
+ Resources : nrtv1alpha2.ResourceInfoList {
250
+ {
251
+ Name : "foo" ,
252
+ Capacity : resource .MustParse ("2" ),
253
+ Allocatable : resource .MustParse ("2" ),
254
+ Available : resource .MustParse ("2" ),
255
+ },
256
+ {
257
+ Name : string (corev1 .ResourceMemory ),
258
+ Capacity : resource .MustParse ("100000000" ),
259
+ Allocatable : resource .MustParse ("100000000" ),
260
+ Available : resource .MustParse ("100000000" ),
261
+ },
262
+ },
263
+ },
264
+ },
265
+ expected : true ,
266
+ },
267
+ {
268
+ name : "with memory deviation but total is NOT equal on node level - reboot test" ,
269
+ isReboot : true ,
270
+ data1 : nrtv1alpha2.ZoneList {
271
+ {
272
+ Name : "Zone-000" ,
273
+ Resources : nrtv1alpha2.ResourceInfoList {
274
+ {
275
+ Name : "foo" ,
276
+ Capacity : resource .MustParse ("2" ),
277
+ Allocatable : resource .MustParse ("2" ),
278
+ Available : resource .MustParse ("2" ),
279
+ },
280
+ {
281
+ Name : string (corev1 .ResourceMemory ),
282
+ Capacity : resource .MustParse ("154525950" ),
283
+ Allocatable : resource .MustParse ("154525950" ),
284
+ Available : resource .MustParse ("154000000" ),
285
+ },
286
+ },
287
+ },
288
+ {
289
+ Name : "Zone-001" ,
290
+ Resources : nrtv1alpha2.ResourceInfoList {
291
+ {
292
+ Name : string (corev1 .ResourceMemory ),
293
+ Capacity : resource .MustParse ("100000000" ),
294
+ Allocatable : resource .MustParse ("100000000" ),
295
+ Available : resource .MustParse ("100000000" ),
296
+ },
297
+ {
298
+ Name : "foo" ,
299
+ Capacity : resource .MustParse ("2" ),
300
+ Allocatable : resource .MustParse ("2" ),
301
+ Available : resource .MustParse ("2" ),
302
+ },
303
+ },
304
+ },
305
+ },
306
+ data2 : nrtv1alpha2.ZoneList {
307
+ {
308
+ Name : "Zone-001" ,
309
+ Resources : nrtv1alpha2.ResourceInfoList {
310
+ {
311
+ Name : "foo" ,
312
+ Capacity : resource .MustParse ("2" ),
313
+ Allocatable : resource .MustParse ("2" ),
314
+ Available : resource .MustParse ("2" ),
315
+ },
316
+ {
317
+ Name : string (corev1 .ResourceMemory ),
318
+ Capacity : resource .MustParse ("154525950" ),
319
+ Allocatable : resource .MustParse ("154525950" ),
320
+ Available : resource .MustParse ("154000000" ),
321
+ },
322
+ },
323
+ },
324
+ {
325
+ Name : "Zone-000" ,
326
+ Resources : nrtv1alpha2.ResourceInfoList {
327
+ {
328
+ Name : "foo" ,
329
+ Capacity : resource .MustParse ("2" ),
330
+ Allocatable : resource .MustParse ("2" ),
331
+ Available : resource .MustParse ("2" ),
332
+ },
333
+ {
334
+ Name : string (corev1 .ResourceMemory ),
335
+ Capacity : resource .MustParse ("154525950" ),
336
+ Allocatable : resource .MustParse ("154525950" ),
337
+ Available : resource .MustParse ("154000000" ),
338
+ },
339
+ },
340
+ },
341
+ },
342
+ expected : false ,
343
+ },
188
344
}
189
345
for _ , tt := range testCases {
190
346
t .Run (tt .name , func (t * testing.T ) {
191
- got , _ := EqualZones (tt .data1 , tt .data2 , false )
347
+ got , _ := EqualZones (tt .data1 , tt .data2 , tt . isReboot )
192
348
if got != tt .expected {
193
349
t .Errorf ("got=%v expected=%v\n data1=%s\n data2=%s" , got , tt .expected , toJSON (tt .data1 ), toJSON (tt .data2 ))
194
350
}
0 commit comments