@@ -144,6 +144,44 @@ func TestAllocateSubnetOverlapping(t *testing.T) {
144
144
}
145
145
}
146
146
147
+ // 10.1.HHHHHHHH.HHHHHHHH
148
+ func TestAllocateSubnetNoSubnetBits (t * testing.T ) {
149
+ sna , err := NewSubnetAllocator ("10.1.0.0/16" , 16 , nil )
150
+ if err != nil {
151
+ t .Fatal ("Failed to initialize subnet allocator: " , err )
152
+ }
153
+
154
+ sn , err := sna .GetNetwork ()
155
+ if err != nil {
156
+ t .Fatal ("Failed to get network: " , err )
157
+ }
158
+ if sn .String () != "10.1.0.0/16" {
159
+ t .Fatalf ("Did not get expected subnet (sn=%s)" , sn .String ())
160
+ }
161
+
162
+ sn , err = sna .GetNetwork ()
163
+ if err == nil {
164
+ t .Fatalf ("Unexpectedly succeeded in getting network (sn=%s)" , sn .String ())
165
+ }
166
+ }
167
+
168
+ func TestAllocateSubnetInvalidHostBitsOrCIDR (t * testing.T ) {
169
+ _ , err := NewSubnetAllocator ("10.1.0.0/16" , 18 , nil )
170
+ if err == nil {
171
+ t .Fatal ("Unexpectedly succeeded in initializing subnet allocator" )
172
+ }
173
+
174
+ _ , err = NewSubnetAllocator ("10.1.0.0/16" , 0 , nil )
175
+ if err == nil {
176
+ t .Fatal ("Unexpectedly succeeded in initializing subnet allocator" )
177
+ }
178
+
179
+ _ , err = NewSubnetAllocator ("10.1.0.0/33" , 16 , nil )
180
+ if err == nil {
181
+ t .Fatal ("Unexpectedly succeeded in initializing subnet allocator" )
182
+ }
183
+ }
184
+
147
185
func TestAllocateSubnetInUse (t * testing.T ) {
148
186
inUse := []string {"10.1.0.0/24" , "10.1.2.0/24" , "10.2.2.2/24" , "Invalid" }
149
187
sna , err := NewSubnetAllocator ("10.1.0.0/16" , 8 , inUse )
0 commit comments