@@ -197,18 +197,21 @@ func TestValidateIPNetFromString(t *testing.T) {
197
197
expected bool
198
198
}{
199
199
{"invalid missing CIDR" , "" , 0 , false , false },
200
+ {"invalid CIDR" , "a" , 0 , false , false },
200
201
{"invalid CIDR missing decimal points in IPv4 address and / mask" , "1234" , 0 , false , false },
201
202
{"invalid CIDR use of letters instead of numbers and / mask" , "abc" , 0 , false , false },
202
203
{"invalid IPv4 address provided instead of CIDR representation" , "1.2.3.4" , 0 , false , false },
203
204
{"invalid IPv6 address provided instead of CIDR representation" , "2001:db8::1" , 0 , false , false },
205
+ {"invalid multiple CIDR provided in a single stack cluster" , "2001:db8::1/64,1.2.3.4/24" , 0 , false , false },
206
+ {"invalid multiple CIDR provided in a single stack cluster and one invalid subnet" , "2001:db8::1/64,a" , 0 , false , false },
204
207
{"valid, but IPv4 CIDR too small. At least 10 addresses needed" , "10.0.0.16/29" , 10 , false , false },
205
208
{"valid, but IPv6 CIDR too small. At least 10 addresses needed" , "2001:db8::/125" , 10 , false , false },
206
209
{"valid IPv4 CIDR" , "10.0.0.16/12" , 10 , false , true },
207
210
{"valid IPv6 CIDR" , "2001:db8::/98" , 10 , false , true },
208
211
// dual-stack:
209
212
{"invalid missing CIDR" , "" , 0 , true , false },
210
- {"invalid only an IPv4 CIDR specified" , "10.0.0.16/12" , 10 , true , false },
211
- {"invalid only an IPv6 CIDR specified" , "2001:db8::/98" , 10 , true , false },
213
+ {"valid dual-stack enabled but only an IPv4 CIDR specified" , "10.0.0.16/12" , 10 , true , true },
214
+ {"valid dual-stack enabled but only an IPv6 CIDR specified" , "2001:db8::/98" , 10 , true , true },
212
215
{"invalid IPv4 address provided instead of CIDR representation" , "1.2.3.4,2001:db8::/98" , 0 , true , false },
213
216
{"invalid IPv6 address provided instead of CIDR representation" , "2001:db8::1,10.0.0.16/12" , 0 , true , false },
214
217
{"valid, but IPv4 CIDR too small. At least 10 addresses needed" , "10.0.0.16/29,2001:db8::/98" , 10 , true , false },
@@ -217,6 +220,8 @@ func TestValidateIPNetFromString(t *testing.T) {
217
220
{"valid, but only IPv6 family addresses specified. IPv4 CIDR is necessary." , "2001:db8::/98,2005:db8::/98" , 10 , true , false },
218
221
{"valid IPv4 and IPv6 CIDR" , "10.0.0.16/12,2001:db8::/98" , 10 , true , true },
219
222
{"valid IPv6 and IPv4 CIDR" , "10.0.0.16/12,2001:db8::/98" , 10 , true , true },
223
+ {"invalid IPv6 and IPv4 CIDR with more than 2 subnets" , "10.0.0.16/12,2001:db8::/98,192.168.0.0/16" , 10 , true , false },
224
+ {"invalid IPv6 and IPv4 CIDR with more than 2 subnets" , "10.0.0.16/12,2001:db8::/98,192.168.0.0/16,a.b.c.d/24" , 10 , true , false },
220
225
}
221
226
for _ , rt := range tests {
222
227
actual := ValidateIPNetFromString (rt .subnet , rt .minaddrs , rt .checkDualStack , nil )
0 commit comments