"os"
"testing"
- qt "github.com/frankban/quicktest"
+ qt "github.com/go-quicktest/qt"
"github.com/stretchr/testify/require"
"github.com/anacrolix/torrent/internal/testutil"
)
func TestBoltPieceCompletionClosedWhenClientClosed(t *testing.T) {
- c := qt.New(t)
cfg := TestingConfig(t)
pc, err := storage.NewBoltPieceCompletion(cfg.DataDir)
require.NoError(t, err)
defer ci.Close()
cfg.DefaultStorage = ci
cl, err := NewClient(cfg)
- c.Assert(err, qt.IsNil, qt.Commentf("%#v", err))
+ qt.Assert(t, qt.IsNil(err), qt.Commentf("%#v", err))
cl.Close()
// And again, https://github.com/anacrolix/torrent/issues/158
cl, err = NewClient(cfg)
cfg.Debug = true
cfg.DataDir = dir
comp, err := storage.NewBoltPieceCompletion(dir)
- c := qt.New(t)
- c.Assert(err, qt.IsNil)
+ qt.Assert(t, qt.IsNil(err))
defer logErr(comp.Close, "closing bolt piece completion")
mmapStorage := storage.NewMMapWithCompletion(dir, comp)
- defer logErr(mmapStorage.Close, "closing mmap storage")
+ defer mmapStorage.Close()
cfg.DefaultStorage = mmapStorage
cl, err := NewClient(cfg)
- c.Assert(err, qt.IsNil)
+ qt.Assert(t, qt.IsNil(err))
defer cl.Close()
tor, new, err := cl.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
- c.Assert(err, qt.IsNil)
- c.Assert(new, qt.IsTrue)
- c.Assert(cl.WaitAll(), qt.IsTrue)
+ qt.Assert(t, qt.IsNil(err))
+ qt.Assert(t, qt.IsTrue(new))
+ qt.Assert(t, qt.IsTrue(cl.WaitAll()))
tor.Drop()
_, new, err = cl.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
- c.Assert(err, qt.IsNil)
- c.Assert(new, qt.IsTrue)
- c.Assert(cl.WaitAll(), qt.IsTrue)
+ qt.Assert(t, qt.IsNil(err))
+ qt.Assert(t, qt.IsTrue(new))
+ qt.Assert(t, qt.IsTrue(cl.WaitAll()))
}
"testing"
g "github.com/anacrolix/generics"
- "github.com/frankban/quicktest"
- qt "github.com/frankban/quicktest"
+ qt "github.com/go-quicktest/qt"
"github.com/stretchr/testify/require"
"golang.org/x/time/rate"
var cl Client
cl.init(TestingConfig(t))
cl.initLogger()
- qtc := qt.New(t)
c := cl.newConnection(nil, newConnectionOpts{network: "io.Pipe"})
c.setTorrent(cl.newTorrentForTesting())
err := c.t.setInfo(&metainfo.Info{Pieces: make([]byte, metainfo.HashSize*3)})
- qtc.Assert(err, qt.IsNil)
+ qt.Assert(t, qt.IsNil(err))
r, w := io.Pipe()
// c.r = r
c.w = w
}
func BenchmarkConnectionMainReadLoop(b *testing.B) {
- c := quicktest.New(b)
var cl Client
cl.init(&ClientConfig{
DownloadRateLimiter: unlimited,
t.onSetInfo()
t._pendingPieces.Add(0)
r, w := net.Pipe()
- c.Logf("pipe reader remote addr: %v", r.RemoteAddr())
+ b.Logf("pipe reader remote addr: %v", r.RemoteAddr())
cn := cl.newConnection(r, newConnectionOpts{
outgoing: true,
// TODO: This is a hack to give the pipe a bannable remote address.
network: r.RemoteAddr().Network(),
connString: regularNetConnPeerConnConnString(r),
})
- c.Assert(cn.bannableAddr.Ok, qt.IsTrue)
+ qt.Assert(b, qt.IsTrue(cn.bannableAddr.Ok))
cn.setTorrent(t)
requestIndexBegin := t.pieceRequestIndexOffset(0)
requestIndexEnd := t.pieceRequestIndexOffset(1)
break
}
}
- c.Assert(err, qt.IsNil)
- c.Assert(cn._stats.ChunksReadUseful.Int64(), quicktest.Equals, int64(b.N)*int64(numRequests))
- c.Assert(t.smartBanCache.HasBlocks(), qt.IsTrue)
+ qt.Assert(b, qt.IsNil(err))
+ qt.Assert(b, qt.Equals(cn._stats.ChunksReadUseful.Int64(), int64(b.N)*int64(numRequests)))
+ qt.Assert(b, qt.IsTrue(t.smartBanCache.HasBlocks()))
}
func TestConnPexPeerFlags(t *testing.T) {
}
func TestConnPexEvent(t *testing.T) {
- c := qt.New(t)
var (
udpAddr = &net.UDPAddr{IP: net.IPv6loopback, Port: 4848}
tcpAddr = &net.TCPAddr{IP: net.IPv6loopback, Port: 4848}
},
}
for i, tc := range testcases {
- c.Run(fmt.Sprintf("%v", i), func(c *qt.C) {
+ t.Run(fmt.Sprintf("%v", i), func(t *testing.T) {
e, err := tc.c.pexEvent(tc.t)
- c.Assert(err, qt.IsNil)
- c.Check(e, qt.Equals, tc.e)
+ qt.Assert(t, qt.IsNil(err))
+ qt.Check(t, qt.Equals(e, tc.e))
})
}
}
func TestHaveAllThenBitfield(t *testing.T) {
- c := qt.New(t)
cl := newTestingClient(t)
tt := cl.newTorrentForTesting()
// cl.newConnection()
pc.initRequestState()
pc.legacyPeerImpl = &pc
tt.conns[&pc] = struct{}{}
- c.Assert(pc.onPeerSentHaveAll(), qt.IsNil)
- c.Check(pc.t.connsWithAllPieces, qt.DeepEquals, map[*Peer]struct{}{&pc.Peer: {}})
+ qt.Assert(t, qt.IsNil(pc.onPeerSentHaveAll()))
+ qt.Check(t, qt.DeepEquals(pc.t.connsWithAllPieces, map[*Peer]struct{}{&pc.Peer: {}}))
pc.peerSentBitfield([]bool{false, false, true, false, true, true, false, false})
- c.Check(pc.peerMinPieces, qt.Equals, 6)
- c.Check(pc.t.connsWithAllPieces, qt.HasLen, 0)
- c.Assert(pc.t.setInfo(&metainfo.Info{
+ qt.Check(t, qt.Equals(pc.peerMinPieces, 6))
+ qt.Check(t, qt.HasLen(pc.t.connsWithAllPieces, 0))
+ qt.Assert(t, qt.IsNil(pc.t.setInfo(&metainfo.Info{
PieceLength: 0,
Pieces: make([]byte, pieceHash.Size()*7),
- }), qt.IsNil)
+ })))
pc.t.onSetInfo()
- c.Check(tt.numPieces(), qt.Equals, 7)
- c.Check(tt.pieceAvailabilityRuns(), qt.DeepEquals, []pieceAvailabilityRun{
+ qt.Check(t, qt.Equals(tt.numPieces(), 7))
+ qt.Check(t, qt.DeepEquals(tt.pieceAvailabilityRuns(), []pieceAvailabilityRun{
// The last element of the bitfield is irrelevant, as the Torrent actually only has 7
// pieces.
{2, 0}, {1, 1}, {1, 0}, {2, 1}, {1, 0},
- })
+ }))
}
func TestApplyRequestStateWriteBufferConstraints(t *testing.T) {
- c := qt.New(t)
- c.Check(interestedMsgLen, qt.Equals, 5)
- c.Check(requestMsgLen, qt.Equals, 17)
- c.Check(maxLocalToRemoteRequests >= 8, qt.IsTrue)
- c.Logf("max local to remote requests: %v", maxLocalToRemoteRequests)
+ qt.Check(t, qt.Equals(interestedMsgLen, 5))
+ qt.Check(t, qt.Equals(requestMsgLen, 17))
+ qt.Check(t, qt.IsTrue(maxLocalToRemoteRequests >= 8))
+ t.Logf("max local to remote requests: %v", maxLocalToRemoteRequests)
}
func peerConnForPreferredNetworkDirection(
func TestPreferredNetworkDirection(t *testing.T) {
pc := peerConnForPreferredNetworkDirection
- c := qt.New(t)
// Prefer outgoing to lower peer ID
- c.Check(
- pc(1, 2, true, false, false).hasPreferredNetworkOver(pc(1, 2, false, false, false)),
- qt.IsFalse,
+ qt.Check(t,
+ qt.IsFalse(pc(1, 2, true, false, false).hasPreferredNetworkOver(pc(1, 2, false, false, false))),
)
- c.Check(
- pc(1, 2, false, false, false).hasPreferredNetworkOver(pc(1, 2, true, false, false)),
- qt.IsTrue,
+ qt.Check(t,
+ qt.IsTrue(pc(1, 2, false, false, false).hasPreferredNetworkOver(pc(1, 2, true, false, false))),
)
- c.Check(
- pc(2, 1, false, false, false).hasPreferredNetworkOver(pc(2, 1, true, false, false)),
- qt.IsFalse,
+ qt.Check(t,
+ qt.IsFalse(pc(2, 1, false, false, false).hasPreferredNetworkOver(pc(2, 1, true, false, false))),
)
// Don't prefer uTP
- c.Check(
- pc(1, 2, false, true, false).hasPreferredNetworkOver(pc(1, 2, false, false, false)),
- qt.IsFalse,
+ qt.Check(t,
+ qt.IsFalse(pc(1, 2, false, true, false).hasPreferredNetworkOver(pc(1, 2, false, false, false))),
)
// Prefer IPv6
- c.Check(
- pc(1, 2, false, false, false).hasPreferredNetworkOver(pc(1, 2, false, false, true)),
- qt.IsFalse,
+ qt.Check(t,
+ qt.IsFalse(pc(1, 2, false, false, false).hasPreferredNetworkOver(pc(1, 2, false, false, true))),
)
// No difference
- c.Check(
- pc(1, 2, false, false, false).hasPreferredNetworkOver(pc(1, 2, false, false, false)),
- qt.IsFalse,
+ qt.Check(t,
+ qt.IsFalse(pc(1, 2, false, false, false).hasPreferredNetworkOver(pc(1, 2, false, false, false))),
)
}
func TestReceiveLargeRequest(t *testing.T) {
- c := qt.New(t)
cl := newTestingClient(t)
pc := cl.newConnection(nil, newConnectionOpts{network: "test"})
tor := cl.newTorrentForTesting()
pc.initMessageWriter()
req := Request{}
req.Length = defaultChunkSize
- c.Assert(pc.fastEnabled(), qt.IsTrue)
- c.Check(pc.onReadRequest(req, false), qt.IsNil)
- c.Check(pc.peerRequests, qt.HasLen, 1)
+ qt.Assert(t, qt.IsTrue(pc.fastEnabled()))
+ qt.Check(t, qt.IsNil(pc.onReadRequest(req, false)))
+ qt.Check(t, qt.HasLen(pc.peerRequests, 1))
req.Length = 2 << 20
- c.Check(pc.onReadRequest(req, false), qt.IsNil)
- c.Check(pc.peerRequests, qt.HasLen, 2)
+ qt.Check(t, qt.IsNil(pc.onReadRequest(req, false)))
+ qt.Check(t, qt.HasLen(pc.peerRequests, 2))
pc.peerRequests = nil
pc.t.cl.config.UploadRateLimiter = rate.NewLimiter(1, defaultChunkSize)
req.Length = defaultChunkSize
- c.Check(pc.onReadRequest(req, false), qt.IsNil)
- c.Check(pc.peerRequests, qt.HasLen, 1)
+ qt.Check(t, qt.IsNil(pc.onReadRequest(req, false)))
+ qt.Check(t, qt.HasLen(pc.peerRequests, 1))
req.Length = 2 << 20
- c.Check(pc.onReadRequest(req, false), qt.IsNil)
- c.Check(pc.messageWriter.writeBuffer.Len(), qt.Equals, 17)
+ qt.Check(t, qt.IsNil(pc.onReadRequest(req, false)))
+ qt.Check(t, qt.Equals(pc.messageWriter.writeBuffer.Len(), 17))
}
func TestChunkOverflowsPiece(t *testing.T) {
- c := qt.New(t)
check := func(begin, length, limit pp.Integer, expected bool) {
- c.Check(chunkOverflowsPiece(ChunkSpec{begin, length}, limit), qt.Equals, expected)
+ qt.Check(t, qt.Equals(chunkOverflowsPiece(ChunkSpec{begin, length}, limit), expected))
}
check(2, 3, 1, true)
check(2, pp.IntegerMax, 1, true)