package torrent
import (
+ "errors"
"io"
"net"
"sync"
r, w := net.Pipe()
cn := cl.newConnection(r, true, r.RemoteAddr(), r.RemoteAddr().Network(), regularNetConnPeerConnConnString(r))
cn.setTorrent(t)
- mrlErr := make(chan error)
+ mrlErrChan := make(chan error)
msg := pp.Message{
Type: pp.Piece,
Piece: make([]byte, defaultChunkSize),
cl.lock()
err := cn.mainReadLoop()
if err != nil {
- mrlErr <- err
+ mrlErrChan <- err
}
- close(mrlErr)
+ close(mrlErrChan)
}()
wb := msg.MustMarshalBinary()
b.SetBytes(int64(len(msg.Piece)))
panic(err)
}
}()
- c.Assert([]error{nil, io.EOF}, quicktest.Contains, <-mrlErr)
+ mrlErr := <-mrlErrChan
+ if mrlErr != nil && !errors.Is(mrlErr, io.EOF) {
+ c.Fatal(mrlErr)
+ }
c.Assert(cn._stats.ChunksReadUseful.Int64(), quicktest.Equals, int64(b.N))
}