@@ -8,78 +8,210 @@ import (
8
8
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
9
9
)
10
10
11
+ var always = corev1 .ContainerRestartPolicyAlways
12
+
11
13
func TestSidecarSetHash (t * testing.T ) {
12
- sidecarSet := & appsv1alpha1.SidecarSet {
13
- ObjectMeta : metav1.ObjectMeta {
14
- Name : "test-sidecar-set" ,
14
+ cases := []struct {
15
+ name string
16
+ getSidecarSet func () * appsv1alpha1.SidecarSet
17
+ expectHash string
18
+ }{
19
+ {
20
+ name : "containers" ,
21
+ getSidecarSet : func () * appsv1alpha1.SidecarSet {
22
+ return & appsv1alpha1.SidecarSet {
23
+ ObjectMeta : metav1.ObjectMeta {
24
+ Name : "test-sidecar-set" ,
25
+ },
26
+ Spec : appsv1alpha1.SidecarSetSpec {
27
+ Containers : []appsv1alpha1.SidecarContainer {
28
+ {
29
+ Container : corev1.Container {
30
+ Name : "container1" ,
31
+ Image : "test-image" ,
32
+ },
33
+ },
34
+ },
35
+ },
36
+ }
37
+ },
38
+ expectHash : "w26c4x8fz245642fdv499b464248f974xddx4x55z5dw55bc6x66464fxz77dc78" ,
15
39
},
16
- Spec : appsv1alpha1.SidecarSetSpec {
17
- Containers : []appsv1alpha1.SidecarContainer {
18
- {
19
- Container : corev1.Container {
20
- Name : "container1" ,
21
- Image : "test-image" ,
40
+ {
41
+ name : "containers and initContainers" ,
42
+ getSidecarSet : func () * appsv1alpha1.SidecarSet {
43
+ return & appsv1alpha1.SidecarSet {
44
+ ObjectMeta : metav1.ObjectMeta {
45
+ Name : "test-sidecar-set" ,
46
+ },
47
+ Spec : appsv1alpha1.SidecarSetSpec {
48
+ Containers : []appsv1alpha1.SidecarContainer {
49
+ {
50
+ Container : corev1.Container {
51
+ Name : "container1" ,
52
+ Image : "test-image" ,
53
+ },
54
+ },
55
+ },
56
+ InitContainers : []appsv1alpha1.SidecarContainer {
57
+ {
58
+ Container : corev1.Container {
59
+ Name : "container1" ,
60
+ Image : "test-image" ,
61
+ },
62
+ },
63
+ },
22
64
},
23
- },
65
+ }
24
66
},
67
+ expectHash : "w26c4x8fz245642fdv499b464248f974xddx4x55z5dw55bc6x66464fxz77dc78" ,
68
+ },
69
+ {
70
+ name : "containers and initContainers with restartPolicy=Always" ,
71
+ getSidecarSet : func () * appsv1alpha1.SidecarSet {
72
+ return & appsv1alpha1.SidecarSet {
73
+ ObjectMeta : metav1.ObjectMeta {
74
+ Name : "test-sidecar-set" ,
75
+ },
76
+ Spec : appsv1alpha1.SidecarSetSpec {
77
+ Containers : []appsv1alpha1.SidecarContainer {
78
+ {
79
+ Container : corev1.Container {
80
+ Name : "container1" ,
81
+ Image : "test-image" ,
82
+ },
83
+ },
84
+ },
85
+ InitContainers : []appsv1alpha1.SidecarContainer {
86
+ {
87
+ Container : corev1.Container {
88
+ Name : "container1" ,
89
+ Image : "test-image" ,
90
+ RestartPolicy : & always ,
91
+ },
92
+ },
93
+ },
94
+ },
95
+ }
96
+ },
97
+ expectHash : "4xwx4d4844vd4v9x79wb4xbxf4xb29475cc4446v8cz2c2f2f5c5bw448vd42z8w" ,
25
98
},
26
99
}
27
100
28
- hash , err := SidecarSetHash (sidecarSet )
29
- if err != nil {
30
- t .Fatalf ("Unexpected error: %v" , err )
31
- }
32
-
33
- if hash == "" {
34
- t .Fatalf ("Expected non-empty hash" )
35
- }
36
-
37
- // Change sidecar set and expect different hash
38
- sidecarSet .Spec .Containers [0 ].Image = "new-image"
39
- newHash , err := SidecarSetHash (sidecarSet )
40
- if err != nil {
41
- t .Fatalf ("Unexpected error: %v" , err )
42
- }
101
+ for _ , cs := range cases {
102
+ t .Run (cs .name , func (t * testing.T ) {
103
+ sidecarSet := cs .getSidecarSet ()
104
+ hash1 , err := SidecarSetHash (sidecarSet )
105
+ if err != nil {
106
+ t .Fatalf ("Unexpected error: %v" , err )
107
+ } else if hash1 == "" {
108
+ t .Fatalf ("Expected non-empty hash" )
109
+ }
110
+ if cs .expectHash != hash1 {
111
+ t .Fatalf ("expect(%s), but get(%s)" , cs .expectHash , hash1 )
112
+ }
43
113
44
- if newHash == hash {
45
- t .Fatalf ("Expected different hashes for different SidecarSets" )
114
+ // Change sidecar set and expect different hash
115
+ sidecarSet .Spec .Containers [0 ].Image = "new-image"
116
+ newHash , err := SidecarSetHash (sidecarSet )
117
+ if err != nil {
118
+ t .Fatalf ("Unexpected error: %v" , err )
119
+ } else if newHash == hash1 {
120
+ t .Fatalf ("Expected different hashes for different SidecarSets" )
121
+ }
122
+ })
46
123
}
47
124
}
48
125
49
126
func TestSidecarSetHashWithoutImage (t * testing.T ) {
50
- sidecarSet := & appsv1alpha1.SidecarSet {
51
- ObjectMeta : metav1.ObjectMeta {
52
- Name : "test-sidecar-set" ,
127
+ cases := []struct {
128
+ name string
129
+ getSidecarSet func () * appsv1alpha1.SidecarSet
130
+ expectHash string
131
+ }{
132
+ {
133
+ name : "containers and initContainers" ,
134
+ getSidecarSet : func () * appsv1alpha1.SidecarSet {
135
+ return & appsv1alpha1.SidecarSet {
136
+ ObjectMeta : metav1.ObjectMeta {
137
+ Name : "test-sidecar-set" ,
138
+ },
139
+ Spec : appsv1alpha1.SidecarSetSpec {
140
+ Containers : []appsv1alpha1.SidecarContainer {
141
+ {
142
+ Container : corev1.Container {
143
+ Name : "container1" ,
144
+ Image : "test-image" ,
145
+ },
146
+ },
147
+ },
148
+ InitContainers : []appsv1alpha1.SidecarContainer {
149
+ {
150
+ Container : corev1.Container {
151
+ Name : "container1" ,
152
+ Image : "test-image" ,
153
+ },
154
+ },
155
+ },
156
+ },
157
+ }
158
+ },
159
+ expectHash : "8wzddb4dvv9c6x8zdc77z4z75987424f457dfv6724ddw6zbdx467wz5x24fc759" ,
53
160
},
54
- Spec : appsv1alpha1.SidecarSetSpec {
55
- Containers : []appsv1alpha1.SidecarContainer {
56
- {
57
- Container : corev1.Container {
58
- Name : "container1" ,
59
- Image : "test-image" ,
161
+ {
162
+ name : "containers and initContainers with restartPolicy=Always" ,
163
+ getSidecarSet : func () * appsv1alpha1.SidecarSet {
164
+ return & appsv1alpha1.SidecarSet {
165
+ ObjectMeta : metav1.ObjectMeta {
166
+ Name : "test-sidecar-set" ,
167
+ },
168
+ Spec : appsv1alpha1.SidecarSetSpec {
169
+ Containers : []appsv1alpha1.SidecarContainer {
170
+ {
171
+ Container : corev1.Container {
172
+ Name : "container1" ,
173
+ Image : "test-image" ,
174
+ },
175
+ },
176
+ },
177
+ InitContainers : []appsv1alpha1.SidecarContainer {
178
+ {
179
+ Container : corev1.Container {
180
+ Name : "container1" ,
181
+ Image : "test-image" ,
182
+ RestartPolicy : & always ,
183
+ },
184
+ },
185
+ },
60
186
},
61
- },
187
+ }
62
188
},
189
+ expectHash : "5725fw8bwbx249bw57v5892c847dzf48bww9zb7c86xb95264fdz26654847b2c8" ,
63
190
},
64
191
}
65
192
66
- hash , err := SidecarSetHashWithoutImage (sidecarSet )
67
- if err != nil {
68
- t .Fatalf ("Unexpected error: %v" , err )
69
- }
70
-
71
- if hash == "" {
72
- t .Fatalf ("Expected non-empty hash" )
73
- }
74
-
75
- // Change sidecar set image and expect same hash
76
- sidecarSet .Spec .Containers [0 ].Image = "new-image"
77
- newHash , err := SidecarSetHashWithoutImage (sidecarSet )
78
- if err != nil {
79
- t .Fatalf ("Unexpected error: %v" , err )
80
- }
193
+ for _ , cs := range cases {
194
+ t .Run (cs .name , func (t * testing.T ) {
195
+ sidecarSet := cs .getSidecarSet ()
196
+ hash1 , err := SidecarSetHashWithoutImage (sidecarSet )
197
+ if err != nil {
198
+ t .Fatalf ("Unexpected error: %v" , err )
199
+ } else if hash1 == "" {
200
+ t .Fatalf ("Expected non-empty hash" )
201
+ }
202
+ if cs .expectHash != hash1 {
203
+ t .Fatalf ("expect(%s), but get(%s)" , cs .expectHash , hash1 )
204
+ }
81
205
82
- if newHash != hash {
83
- t .Fatalf ("Expected same hashes for SidecarSets with different images" )
206
+ // Change sidecar set and expect different hash
207
+ sidecarSet .Spec .Containers [0 ].Image = "new-image"
208
+ sidecarSet .Spec .InitContainers [0 ].Image = "new-image"
209
+ newHash , err := SidecarSetHashWithoutImage (sidecarSet )
210
+ if err != nil {
211
+ t .Fatalf ("Unexpected error: %v" , err )
212
+ } else if newHash != hash1 {
213
+ t .Fatalf ("Expected same hashes for different SidecarSets" )
214
+ }
215
+ })
84
216
}
85
217
}
0 commit comments