github.com/anacrolix/torrent@v1.61.0/iplist/cidr_test.go (about) 1 package iplist 2 3 import ( 4 "bytes" 5 "net" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestIPNetLast(t *testing.T) { 13 _, in, err := net.ParseCIDR("138.255.252.0/22") 14 require.NoError(t, err) 15 assert.EqualValues(t, []byte{138, 255, 252, 0}, in.IP) 16 assert.EqualValues(t, []byte{255, 255, 252, 0}, in.Mask) 17 assert.EqualValues(t, []byte{138, 255, 255, 255}, IPNetLast(in)) 18 _, in, err = net.ParseCIDR("2400:cb00::/31") 19 require.NoError(t, err) 20 assert.EqualValues(t, []byte{0x24, 0, 0xcb, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, in.IP) 21 assert.EqualValues(t, []byte{255, 255, 255, 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, in.Mask) 22 assert.EqualValues(t, []byte{0x24, 0, 0xcb, 1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, IPNetLast(in)) 23 } 24 25 func TestParseCIDRList(t *testing.T) { 26 r := bytes.NewBufferString(`2400:cb00::/32 27 2405:8100::/32 28 2405:b500::/32 29 2606:4700::/32 30 2803:f800::/32 31 2c0f:f248::/32 32 2a06:98c0::/29 33 `) 34 rs, err := ParseCIDRListReader(r) 35 require.NoError(t, err) 36 require.Len(t, rs, 7) 37 assert.EqualValues(t, Range{ 38 First: net.IP{0x28, 3, 0xf8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 39 Last: net.IP{0x28, 3, 0xf8, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, 40 }, rs[4]) 41 }