@@ -41,37 +41,40 @@ func checkNodesSimilarWithPods(t *testing.T, n1, n2 *apiv1.Node, pods1, pods2 []
4141}
4242
4343func TestIdenticalNodesSimilar (t * testing.T ) {
44+ comparator := CreateGenericNodeInfoComparator ()
4445 n1 := BuildTestNode ("node1" , 1000 , 2000 )
4546 n2 := BuildTestNode ("node2" , 1000 , 2000 )
46- checkNodesSimilar (t , n1 , n2 , IsNodeInfoSimilar , true )
47+ checkNodesSimilar (t , n1 , n2 , comparator , true )
4748}
4849
4950func TestNodesSimilarVariousRequirements (t * testing.T ) {
51+ comparator := CreateGenericNodeInfoComparator ()
5052 n1 := BuildTestNode ("node1" , 1000 , 2000 )
5153
5254 // Different CPU capacity
5355 n2 := BuildTestNode ("node2" , 1000 , 2000 )
5456 n2 .Status .Capacity [apiv1 .ResourceCPU ] = * resource .NewMilliQuantity (1001 , resource .DecimalSI )
55- checkNodesSimilar (t , n1 , n2 , IsNodeInfoSimilar , false )
57+ checkNodesSimilar (t , n1 , n2 , comparator , false )
5658
5759 // Same CPU capacity, but slightly different allocatable
5860 n3 := BuildTestNode ("node3" , 1000 , 2000 )
5961 n3 .Status .Allocatable [apiv1 .ResourceCPU ] = * resource .NewMilliQuantity (999 , resource .DecimalSI )
60- checkNodesSimilar (t , n1 , n3 , IsNodeInfoSimilar , true )
62+ checkNodesSimilar (t , n1 , n3 , comparator , true )
6163
6264 // Same CPU capacity, significantly different allocatable
6365 n4 := BuildTestNode ("node4" , 1000 , 2000 )
6466 n4 .Status .Allocatable [apiv1 .ResourceCPU ] = * resource .NewMilliQuantity (500 , resource .DecimalSI )
65- checkNodesSimilar (t , n1 , n4 , IsNodeInfoSimilar , false )
67+ checkNodesSimilar (t , n1 , n4 , comparator , false )
6668
6769 // One with GPU, one without
6870 n5 := BuildTestNode ("node5" , 1000 , 2000 )
6971 n5 .Status .Capacity [gpu .ResourceNvidiaGPU ] = * resource .NewQuantity (1 , resource .DecimalSI )
7072 n5 .Status .Allocatable [gpu .ResourceNvidiaGPU ] = n5 .Status .Capacity [gpu .ResourceNvidiaGPU ]
71- checkNodesSimilar (t , n1 , n5 , IsNodeInfoSimilar , false )
73+ checkNodesSimilar (t , n1 , n5 , comparator , false )
7274}
7375
7476func TestNodesSimilarVariousRequirementsAndPods (t * testing.T ) {
77+ comparator := CreateGenericNodeInfoComparator ()
7578 n1 := BuildTestNode ("node1" , 1000 , 2000 )
7679 p1 := BuildTestPod ("pod1" , 500 , 1000 )
7780 p1 .Spec .NodeName = "node1"
@@ -80,37 +83,39 @@ func TestNodesSimilarVariousRequirementsAndPods(t *testing.T) {
8083 n2 := BuildTestNode ("node2" , 1000 , 2000 )
8184 n2 .Status .Allocatable [apiv1 .ResourceCPU ] = * resource .NewMilliQuantity (500 , resource .DecimalSI )
8285 n2 .Status .Allocatable [apiv1 .ResourceMemory ] = * resource .NewQuantity (1000 , resource .DecimalSI )
83- checkNodesSimilarWithPods (t , n1 , n2 , []* apiv1.Pod {p1 }, []* apiv1.Pod {}, IsNodeInfoSimilar , false )
86+ checkNodesSimilarWithPods (t , n1 , n2 , []* apiv1.Pod {p1 }, []* apiv1.Pod {}, comparator , false )
8487
8588 // Same requests of pods
8689 n3 := BuildTestNode ("node3" , 1000 , 2000 )
8790 p3 := BuildTestPod ("pod3" , 500 , 1000 )
8891 p3 .Spec .NodeName = "node3"
89- checkNodesSimilarWithPods (t , n1 , n3 , []* apiv1.Pod {p1 }, []* apiv1.Pod {p3 }, IsNodeInfoSimilar , true )
92+ checkNodesSimilarWithPods (t , n1 , n3 , []* apiv1.Pod {p1 }, []* apiv1.Pod {p3 }, comparator , true )
9093
9194 // Similar allocatable, similar pods
9295 n4 := BuildTestNode ("node4" , 1000 , 2000 )
9396 n4 .Status .Allocatable [apiv1 .ResourceCPU ] = * resource .NewMilliQuantity (999 , resource .DecimalSI )
9497 p4 := BuildTestPod ("pod4" , 501 , 1001 )
9598 p4 .Spec .NodeName = "node4"
96- checkNodesSimilarWithPods (t , n1 , n4 , []* apiv1.Pod {p1 }, []* apiv1.Pod {p4 }, IsNodeInfoSimilar , true )
99+ checkNodesSimilarWithPods (t , n1 , n4 , []* apiv1.Pod {p1 }, []* apiv1.Pod {p4 }, comparator , true )
97100}
98101
99102func TestNodesSimilarVariousMemoryRequirements (t * testing.T ) {
103+ comparator := CreateGenericNodeInfoComparator ()
100104 n1 := BuildTestNode ("node1" , 1000 , MaxMemoryDifferenceInKiloBytes )
101105
102106 // Different memory capacity within tolerance
103107 n2 := BuildTestNode ("node2" , 1000 , MaxMemoryDifferenceInKiloBytes )
104108 n2 .Status .Capacity [apiv1 .ResourceMemory ] = * resource .NewQuantity (2 * MaxMemoryDifferenceInKiloBytes , resource .DecimalSI )
105- checkNodesSimilar (t , n1 , n2 , IsNodeInfoSimilar , true )
109+ checkNodesSimilar (t , n1 , n2 , comparator , true )
106110
107111 // Different memory capacity exceeds tolerance
108112 n3 := BuildTestNode ("node3" , 1000 , MaxMemoryDifferenceInKiloBytes )
109113 n3 .Status .Capacity [apiv1 .ResourceMemory ] = * resource .NewQuantity (2 * MaxMemoryDifferenceInKiloBytes + 1 , resource .DecimalSI )
110- checkNodesSimilar (t , n1 , n3 , IsNodeInfoSimilar , false )
114+ checkNodesSimilar (t , n1 , n3 , comparator , false )
111115}
112116
113117func TestNodesSimilarVariousLabels (t * testing.T ) {
118+ comparator := CreateGenericNodeInfoComparator ()
114119 n1 := BuildTestNode ("node1" , 1000 , 2000 )
115120 n1 .ObjectMeta .Labels ["test-label" ] = "test-value"
116121 n1 .ObjectMeta .Labels ["character" ] = "winnie the pooh"
@@ -119,27 +124,27 @@ func TestNodesSimilarVariousLabels(t *testing.T) {
119124 n2 .ObjectMeta .Labels ["test-label" ] = "test-value"
120125
121126 // Missing character label
122- checkNodesSimilar (t , n1 , n2 , IsNodeInfoSimilar , false )
127+ checkNodesSimilar (t , n1 , n2 , comparator , false )
123128
124129 n2 .ObjectMeta .Labels ["character" ] = "winnie the pooh"
125- checkNodesSimilar (t , n1 , n2 , IsNodeInfoSimilar , true )
130+ checkNodesSimilar (t , n1 , n2 , comparator , true )
126131
127132 // Different hostname labels shouldn't matter
128133 n1 .ObjectMeta .Labels [apiv1 .LabelHostname ] = "node1"
129134 n2 .ObjectMeta .Labels [apiv1 .LabelHostname ] = "node2"
130- checkNodesSimilar (t , n1 , n2 , IsNodeInfoSimilar , true )
135+ checkNodesSimilar (t , n1 , n2 , comparator , true )
131136
132137 // Different zone shouldn't matter either
133138 n1 .ObjectMeta .Labels [apiv1 .LabelZoneFailureDomain ] = "mars-olympus-mons1-b"
134139 n2 .ObjectMeta .Labels [apiv1 .LabelZoneFailureDomain ] = "us-houston1-a"
135- checkNodesSimilar (t , n1 , n2 , IsNodeInfoSimilar , true )
140+ checkNodesSimilar (t , n1 , n2 , comparator , true )
136141
137142 // Different beta.kubernetes.io/fluentd-ds-ready should not matter
138143 n1 .ObjectMeta .Labels ["beta.kubernetes.io/fluentd-ds-ready" ] = "true"
139144 n2 .ObjectMeta .Labels ["beta.kubernetes.io/fluentd-ds-ready" ] = "false"
140- checkNodesSimilar (t , n1 , n2 , IsNodeInfoSimilar , true )
145+ checkNodesSimilar (t , n1 , n2 , comparator , true )
141146
142147 n1 .ObjectMeta .Labels ["beta.kubernetes.io/fluentd-ds-ready" ] = "true"
143148 delete (n2 .ObjectMeta .Labels , "beta.kubernetes.io/fluentd-ds-ready" )
144- checkNodesSimilar (t , n1 , n2 , IsNodeInfoSimilar , true )
149+ checkNodesSimilar (t , n1 , n2 , comparator , true )
145150}
0 commit comments