45 lines
736 B
Go
45 lines
736 B
Go
|
package aghnet
|
||
|
|
||
|
import (
|
||
|
"net"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/AdguardTeam/golibs/netutil"
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
)
|
||
|
|
||
|
func TestIPMut(t *testing.T) {
|
||
|
testIPs := []net.IP{{
|
||
|
127, 0, 0, 1,
|
||
|
}, {
|
||
|
192, 168, 0, 1,
|
||
|
}, {
|
||
|
8, 8, 8, 8,
|
||
|
}}
|
||
|
|
||
|
t.Run("nil_no_mut", func(t *testing.T) {
|
||
|
ipmut := NewIPMut(nil)
|
||
|
|
||
|
ips := netutil.CloneIPs(testIPs)
|
||
|
for i := range ips {
|
||
|
ipmut.Load()(ips[i])
|
||
|
assert.True(t, ips[i].Equal(testIPs[i]))
|
||
|
}
|
||
|
})
|
||
|
|
||
|
t.Run("not_nil_mut", func(t *testing.T) {
|
||
|
ipmut := NewIPMut(func(ip net.IP) {
|
||
|
for i := range ip {
|
||
|
ip[i] = 0
|
||
|
}
|
||
|
})
|
||
|
want := netutil.IPv4Zero()
|
||
|
|
||
|
ips := netutil.CloneIPs(testIPs)
|
||
|
for i := range ips {
|
||
|
ipmut.Load()(ips[i])
|
||
|
assert.True(t, ips[i].Equal(want))
|
||
|
}
|
||
|
})
|
||
|
}
|