@@ -30,29 +30,34 @@ func TestAllocate(t *testing.T) {
30
30
cidr string
31
31
free int
32
32
released string
33
- outOfRange1 string
34
- outOfRange2 string
35
- outOfRange3 string
33
+ outOfRange []string
36
34
alreadyAllocated string
37
35
}{
38
36
{
39
- name : "IPv4" ,
40
- cidr : "192.168.1.0/24" ,
41
- free : 254 ,
42
- released : "192.168.1.5" ,
43
- outOfRange1 : "192.168.0.1" ,
44
- outOfRange2 : "192.168.1.0" ,
45
- outOfRange3 : "192.168.1.255" ,
37
+ name : "IPv4" ,
38
+ cidr : "192.168.1.0/24" ,
39
+ free : 254 ,
40
+ released : "192.168.1.5" ,
41
+ outOfRange : []string {
42
+ "192.168.0.1" , // not in 192.168.1.0/24
43
+ "192.168.1.0" , // reserved (base address)
44
+ "192.168.1.255" , // reserved (broadcast address)
45
+ "192.168.2.2" , // not in 192.168.1.0/24
46
+ },
46
47
alreadyAllocated : "192.168.1.1" ,
47
48
},
48
49
{
49
- name : "IPv6" ,
50
- cidr : "2001:db8:1::/48" ,
51
- free : 65534 ,
52
- released : "2001:db8:1::5" ,
53
- outOfRange1 : "2001:db8::1" ,
54
- outOfRange2 : "2001:db8:1::" ,
55
- outOfRange3 : "2001:db8:1::ffff" ,
50
+ name : "IPv6" ,
51
+ cidr : "2001:db8:1::/48" ,
52
+ free : 65534 ,
53
+ released : "2001:db8:1::5" ,
54
+ outOfRange : []string {
55
+ "2001:db8::1" , // not in 2001:db8:1::/48
56
+ "2001:db8:1::" , // reserved (base address)
57
+ "2001:db8:1::ffff" , // reserved (broadcast address)
58
+ "2001:db8:1::1:0" , // not in the low 16 bits of 2001:db8:1::/48
59
+ "2001:db8:2::2" , // not in 2001:db8:1::/48
60
+ },
56
61
alreadyAllocated : "2001:db8:1::1" ,
57
62
},
58
63
}
@@ -119,21 +124,15 @@ func TestAllocate(t *testing.T) {
119
124
if err := r .Release (released ); err != nil {
120
125
t .Fatal (err )
121
126
}
122
- err = r .Allocate (net .ParseIP (tc .outOfRange1 ))
123
- if _ , ok := err .(* ErrNotInRange ); ! ok {
124
- t .Fatal (err )
127
+ for _ , outOfRange := range tc .outOfRange {
128
+ err = r .Allocate (net .ParseIP (outOfRange ))
129
+ if _ , ok := err .(* ErrNotInRange ); ! ok {
130
+ t .Fatal (err )
131
+ }
125
132
}
126
133
if err := r .Allocate (net .ParseIP (tc .alreadyAllocated )); err != ErrAllocated {
127
134
t .Fatal (err )
128
135
}
129
- err = r .Allocate (net .ParseIP (tc .outOfRange2 ))
130
- if _ , ok := err .(* ErrNotInRange ); ! ok {
131
- t .Fatal (err )
132
- }
133
- err = r .Allocate (net .ParseIP (tc .outOfRange3 ))
134
- if _ , ok := err .(* ErrNotInRange ); ! ok {
135
- t .Fatal (err )
136
- }
137
136
if f := r .Free (); f != 1 {
138
137
t .Errorf ("Test %s unexpected free %d" , tc .name , f )
139
138
}
0 commit comments