]> Sergey Matveev's repositories - btrtrc.git/blob - peer_protocol/pex_test.go
bencode: Fix marshalling of []byte(nil)
[btrtrc.git] / peer_protocol / pex_test.go
1 package peer_protocol
2
3 import (
4         "testing"
5
6         "github.com/anacrolix/torrent/bencode"
7         "github.com/stretchr/testify/require"
8 )
9
10 func TestUnmarshalPex(t *testing.T) {
11         var pem PexMsg
12         err := bencode.Unmarshal([]byte("d5:added12:\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0ce"), &pem)
13         require.NoError(t, err)
14         require.EqualValues(t, 2, len(pem.Added))
15         require.EqualValues(t, 1286, pem.Added[0].Port)
16         require.EqualValues(t, 0x100*0xb+0xc, pem.Added[1].Port)
17 }
18
19 func TestEmptyPexMsg(t *testing.T) {
20         pm := PexMsg{}
21         b, err := bencode.Marshal(pm)
22         t.Logf("%q", b)
23         require.NoError(t, err)
24         require.NoError(t, bencode.Unmarshal(b, &pm))
25 }