9 "github.com/bradfitz/iter"
10 "github.com/stretchr/testify/require"
13 func BenchmarkDecodePieces(t *testing.B) {
15 const pieceLen = 1 << 14
20 Piece: make([]byte, pieceLen),
22 b, err := msg.MarshalBinary()
23 require.NoError(t, err)
24 t.SetBytes(int64(len(b)))
30 if err == io.ErrClosedPipe {
33 require.NoError(t, err)
34 require.Equal(t, len(b), n)
38 // Emulate what package torrent's client would do.
39 R: bufio.NewReader(r),
42 New: func() interface{} {
43 b := make([]byte, pieceLen)
48 for range iter.N(t.N) {
50 require.NoError(t, d.Decode(&msg))
52 d.Pool.Put(&msg.Piece)