Skip to content

Commit 4a7c86c

Browse files
committed
make test a bit more generic
1 parent ddebbfd commit 4a7c86c

File tree

1 file changed

+27
-28
lines changed

1 file changed

+27
-28
lines changed

pkg/registry/core/service/ipallocator/allocator_test.go

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -30,29 +30,34 @@ func TestAllocate(t *testing.T) {
3030
cidr string
3131
free int
3232
released string
33-
outOfRange1 string
34-
outOfRange2 string
35-
outOfRange3 string
33+
outOfRange []string
3634
alreadyAllocated string
3735
}{
3836
{
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+
},
4647
alreadyAllocated: "192.168.1.1",
4748
},
4849
{
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+
},
5661
alreadyAllocated: "2001:db8:1::1",
5762
},
5863
}
@@ -119,21 +124,15 @@ func TestAllocate(t *testing.T) {
119124
if err := r.Release(released); err != nil {
120125
t.Fatal(err)
121126
}
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+
}
125132
}
126133
if err := r.Allocate(net.ParseIP(tc.alreadyAllocated)); err != ErrAllocated {
127134
t.Fatal(err)
128135
}
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-
}
137136
if f := r.Free(); f != 1 {
138137
t.Errorf("Test %s unexpected free %d", tc.name, f)
139138
}

0 commit comments

Comments
 (0)