Skip to content

Commit 5797a3f

Browse files
author
Olaf Alders
committed
Add more NetworksWithin() tests
1 parent c9e1da3 commit 5797a3f

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

traverse_test.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,14 @@ var tests = []networkTest{
6767
"1.1.1.32/32",
6868
},
6969
},
70+
networkTest{
71+
Network: "1.1.1.1/30",
72+
Database: "ipv4",
73+
Expected: []string{
74+
"1.1.1.1/32",
75+
"1.1.1.2/31",
76+
},
77+
},
7078
networkTest{
7179
Network: "1.1.1.1/32",
7280
Database: "ipv4",
@@ -99,6 +107,15 @@ var tests = []networkTest{
99107
"::2:0:58/127",
100108
},
101109
},
110+
networkTest{
111+
Network: "::2:0:40/123",
112+
Database: "ipv6",
113+
Expected: []string{
114+
"::2:0:40/124",
115+
"::2:0:50/125",
116+
"::2:0:58/127",
117+
},
118+
},
102119
networkTest{
103120
Network: "0.0.0.0/0",
104121
Database: "mixed",
@@ -111,6 +128,13 @@ var tests = []networkTest{
111128
"1.1.1.32/32",
112129
},
113130
},
131+
networkTest{
132+
Network: "1.1.1.16/28",
133+
Database: "mixed",
134+
Expected: []string{
135+
"1.1.1.16/28",
136+
},
137+
},
114138
networkTest{
115139
Network: "::/0",
116140
Database: "ipv4",
@@ -123,6 +147,13 @@ var tests = []networkTest{
123147
"101:120::/32",
124148
},
125149
},
150+
networkTest{
151+
Network: "101:104::/30",
152+
Database: "ipv4",
153+
Expected: []string{
154+
"101:104::/30",
155+
},
156+
},
126157
}
127158

128159
func TestNetworksWithin(t *testing.T) {
@@ -152,3 +183,41 @@ func TestNetworksWithin(t *testing.T) {
152183
}
153184
}
154185
}
186+
187+
var geoIPTests = []networkTest{
188+
networkTest{
189+
Network: "81.2.69.128/26",
190+
Database: "GeoIP2-Country-Test.mmdb",
191+
Expected: []string{
192+
"81.2.69.142/31",
193+
"81.2.69.144/28",
194+
"81.2.69.160/27",
195+
},
196+
},
197+
}
198+
199+
func TestGeoIPNetworksWithin(t *testing.T) {
200+
for _, v := range geoIPTests {
201+
fileName := testFile(v.Database)
202+
reader, err := Open(fileName)
203+
require.Nil(t, err, "unexpected error while opening database: %v", err)
204+
defer reader.Close()
205+
206+
_, network, err := net.ParseCIDR(v.Network)
207+
assert.Nil(t, err)
208+
n := reader.NetworksWithin(network)
209+
var innerIPs []string
210+
211+
for n.Next() {
212+
record := struct {
213+
IP string `maxminddb:"ip"`
214+
}{}
215+
network, err := n.Network(&record)
216+
assert.Nil(t, err)
217+
innerIPs = append(innerIPs, network.String())
218+
}
219+
220+
assert.Equal(t, v.Expected, innerIPs)
221+
assert.Nil(t, n.Err())
222+
}
223+
}

0 commit comments

Comments
 (0)