@@ -97,6 +97,7 @@ func TestConfigFileFeatureGates(t *testing.T) {
97
97
name string
98
98
serverFeatureGatesJSON string
99
99
experimentalStopGRPCServiceOnDefrag string
100
+ experimentalInitialCorruptCheck string
100
101
expectErr bool
101
102
expectedFeatures map [featuregate.Feature ]bool
102
103
}{
@@ -105,6 +106,7 @@ func TestConfigFileFeatureGates(t *testing.T) {
105
106
expectedFeatures : map [featuregate.Feature ]bool {
106
107
features .DistributedTracing : false ,
107
108
features .StopGRPCServiceOnDefrag : false ,
109
+ features .InitialCorruptCheck : false ,
108
110
},
109
111
},
110
112
{
@@ -113,13 +115,20 @@ func TestConfigFileFeatureGates(t *testing.T) {
113
115
experimentalStopGRPCServiceOnDefrag : "false" ,
114
116
expectErr : true ,
115
117
},
118
+ {
119
+ name : "cannot set both experimental flag and feature gate flag for InitialCorruptCheck" ,
120
+ serverFeatureGatesJSON : "InitialCorruptCheck=true" ,
121
+ experimentalInitialCorruptCheck : "false" ,
122
+ expectErr : true ,
123
+ },
116
124
{
117
125
name : "ok to set different experimental flag and feature gate flag" ,
118
126
serverFeatureGatesJSON : "DistributedTracing=true" ,
119
127
experimentalStopGRPCServiceOnDefrag : "true" ,
120
128
expectedFeatures : map [featuregate.Feature ]bool {
121
129
features .DistributedTracing : true ,
122
130
features .StopGRPCServiceOnDefrag : true ,
131
+ features .InitialCorruptCheck : false ,
123
132
},
124
133
},
125
134
{
@@ -128,6 +137,7 @@ func TestConfigFileFeatureGates(t *testing.T) {
128
137
expectedFeatures : map [featuregate.Feature ]bool {
129
138
features .StopGRPCServiceOnDefrag : true ,
130
139
features .DistributedTracing : false ,
140
+ features .InitialCorruptCheck : false ,
131
141
},
132
142
},
133
143
{
@@ -136,14 +146,43 @@ func TestConfigFileFeatureGates(t *testing.T) {
136
146
expectedFeatures : map [featuregate.Feature ]bool {
137
147
features .StopGRPCServiceOnDefrag : false ,
138
148
features .DistributedTracing : false ,
149
+ features .InitialCorruptCheck : false ,
150
+ },
151
+ },
152
+ {
153
+ name : "can set feature gate experimentalInitialCorruptCheck to true from experimental flag" ,
154
+ experimentalInitialCorruptCheck : "true" ,
155
+ expectedFeatures : map [featuregate.Feature ]bool {
156
+ features .StopGRPCServiceOnDefrag : false ,
157
+ features .DistributedTracing : false ,
158
+ features .InitialCorruptCheck : true ,
159
+ },
160
+ },
161
+ {
162
+ name : "can set feature gate experimentalInitialCorruptCheck to false from experimental flag" ,
163
+ experimentalInitialCorruptCheck : "false" ,
164
+ expectedFeatures : map [featuregate.Feature ]bool {
165
+ features .StopGRPCServiceOnDefrag : false ,
166
+ features .DistributedTracing : false ,
167
+ features .InitialCorruptCheck : false ,
139
168
},
140
169
},
141
170
{
142
- name : "can set feature gate to true from feature gate flag" ,
171
+ name : "can set feature gate StopGRPCServiceOnDefrag to true from feature gate flag" ,
143
172
serverFeatureGatesJSON : "StopGRPCServiceOnDefrag=true" ,
144
173
expectedFeatures : map [featuregate.Feature ]bool {
145
174
features .StopGRPCServiceOnDefrag : true ,
146
175
features .DistributedTracing : false ,
176
+ features .InitialCorruptCheck : false ,
177
+ },
178
+ },
179
+ {
180
+ name : "can set feature gate InitialCorruptCheck to true from feature gate flag" ,
181
+ serverFeatureGatesJSON : "InitialCorruptCheck=true" ,
182
+ expectedFeatures : map [featuregate.Feature ]bool {
183
+ features .StopGRPCServiceOnDefrag : false ,
184
+ features .DistributedTracing : false ,
185
+ features .InitialCorruptCheck : true ,
147
186
},
148
187
},
149
188
{
@@ -152,25 +191,36 @@ func TestConfigFileFeatureGates(t *testing.T) {
152
191
expectedFeatures : map [featuregate.Feature ]bool {
153
192
features .StopGRPCServiceOnDefrag : false ,
154
193
features .DistributedTracing : false ,
194
+ features .InitialCorruptCheck : false ,
155
195
},
156
196
},
157
197
}
158
198
for _ , tc := range testCases {
159
199
t .Run (tc .name , func (t * testing.T ) {
160
200
yc := struct {
161
201
ExperimentalStopGRPCServiceOnDefrag * bool `json:"experimental-stop-grpc-service-on-defrag,omitempty"`
202
+ ExperimentalInitialCorruptCheck * bool `json:"experimental-initial-corrupt-check,omitempty"`
162
203
ServerFeatureGatesJSON string `json:"feature-gates"`
163
204
}{
164
205
ServerFeatureGatesJSON : tc .serverFeatureGatesJSON ,
165
206
}
166
207
208
+ if tc .experimentalInitialCorruptCheck != "" {
209
+ experimentalInitialCorruptCheck , err := strconv .ParseBool (tc .experimentalInitialCorruptCheck )
210
+ if err != nil {
211
+ t .Fatal (err )
212
+ }
213
+ yc .ExperimentalInitialCorruptCheck = & experimentalInitialCorruptCheck
214
+ }
215
+
167
216
if tc .experimentalStopGRPCServiceOnDefrag != "" {
168
217
experimentalStopGRPCServiceOnDefrag , err := strconv .ParseBool (tc .experimentalStopGRPCServiceOnDefrag )
169
218
if err != nil {
170
219
t .Fatal (err )
171
220
}
172
221
yc .ExperimentalStopGRPCServiceOnDefrag = & experimentalStopGRPCServiceOnDefrag
173
222
}
223
+
174
224
b , err := yaml .Marshal (& yc )
175
225
if err != nil {
176
226
t .Fatal (err )
0 commit comments