MCPcopy
hub / github.com/WireGuard/wireguard-go / TestTrieIPv6

Function TestTrieIPv6

device/allowedips_test.go:203–304  ·  view source on GitHub ↗

* Test ported from kernel implementation: * selftest/allowedips.h */

(t *testing.T)

Source from the content-addressed store, hash-verified

201 * selftest/allowedips.h
202 */
203func TestTrieIPv6(t *testing.T) {
204 a := &Peer{}
205 b := &Peer{}
206 c := &Peer{}
207 d := &Peer{}
208 e := &Peer{}
209 f := &Peer{}
210 g := &Peer{}
211 h := &Peer{}
212
213 var allowedIPs AllowedIPs
214
215 expand := func(a uint32) []byte {
216 var out [4]byte
217 out[0] = byte(a >> 24 & 0xff)
218 out[1] = byte(a >> 16 & 0xff)
219 out[2] = byte(a >> 8 & 0xff)
220 out[3] = byte(a & 0xff)
221 return out[:]
222 }
223
224 insert := func(peer *Peer, a, b, c, d uint32, cidr uint8) {
225 var addr []byte
226 addr = append(addr, expand(a)...)
227 addr = append(addr, expand(b)...)
228 addr = append(addr, expand(c)...)
229 addr = append(addr, expand(d)...)
230 allowedIPs.Insert(netip.PrefixFrom(netip.AddrFrom16(*(*[16]byte)(addr)), int(cidr)), peer)
231 }
232
233 remove := func(peer *Peer, a, b, c, d uint32, cidr uint8) {
234 var addr []byte
235 addr = append(addr, expand(a)...)
236 addr = append(addr, expand(b)...)
237 addr = append(addr, expand(c)...)
238 addr = append(addr, expand(d)...)
239 allowedIPs.Remove(netip.PrefixFrom(netip.AddrFrom16(*(*[16]byte)(addr)), int(cidr)), peer)
240 }
241
242 assertEQ := func(peer *Peer, a, b, c, d uint32) {
243 var addr []byte
244 addr = append(addr, expand(a)...)
245 addr = append(addr, expand(b)...)
246 addr = append(addr, expand(c)...)
247 addr = append(addr, expand(d)...)
248 p := allowedIPs.Lookup(addr)
249 if p != peer {
250 t.Error("Assert EQ failed")
251 }
252 }
253
254 assertNEQ := func(peer *Peer, a, b, c, d uint32) {
255 var addr []byte
256 addr = append(addr, expand(a)...)
257 addr = append(addr, expand(b)...)
258 addr = append(addr, expand(c)...)
259 addr = append(addr, expand(d)...)
260 p := allowedIPs.Lookup(addr)

Callers

nothing calls this directly

Calls 4

InsertMethod · 0.95
RemoveMethod · 0.95
LookupMethod · 0.95
ErrorMethod · 0.45

Tested by

no test coverage detected