]> Sergey Matveev's repositories - btrtrc.git/blobdiff - client_test.go
Fix TestTorrentDroppedDuringResponsiveRead flakiness
[btrtrc.git] / client_test.go
index 86023fb69b0c8aefe33e0536eb097ce824414d2d..dc53f8e863ee5a127fcc2bc2d8c0858570088f59 100644 (file)
@@ -288,9 +288,9 @@ func TestTorrentDroppedDuringResponsiveRead(t *testing.T) {
        _, err = io.ReadFull(reader, b)
        assert.Nil(t, err)
        assert.EqualValues(t, "lo", string(b))
-       go leecherTorrent.Drop()
        _, err = reader.Seek(11, io.SeekStart)
        require.NoError(t, err)
+       leecherTorrent.Drop()
        n, err := reader.Read(b)
        assert.EqualError(t, err, "torrent closed")
        assert.EqualValues(t, 0, n)
@@ -537,8 +537,10 @@ func TestPeerInvalidHave(t *testing.T) {
        assert.True(t, _new)
        defer tt.Drop()
        cn := &PeerConn{Peer: Peer{
-               t: tt,
+               t:         tt,
+               callbacks: &cfg.Callbacks,
        }}
+       tt.conns[cn] = struct{}{}
        cn.peerImpl = cn
        cl.lock()
        defer cl.unlock()
@@ -647,7 +649,7 @@ func TestSetMaxEstablishedConn(t *testing.T) {
 
 // Creates a file containing its own name as data. Make a metainfo from that, adds it to the given
 // client, and returns a magnet link.
-func makeMagnet(t *testing.T, cl *Client, dir string, name string) string {
+func makeMagnet(t *testing.T, cl *Client, dir, name string) string {
        os.MkdirAll(dir, 0o770)
        file, err := os.Create(filepath.Join(dir, name))
        require.NoError(t, err)
@@ -684,7 +686,7 @@ func TestMultipleTorrentsWithEncryption(t *testing.T) {
 
 // Test that the leecher can download a torrent in its entirety from the seeder. Note that the
 // seeder config is done first.
-func testSeederLeecherPair(t *testing.T, seeder func(*ClientConfig), leecher func(*ClientConfig)) {
+func testSeederLeecherPair(t *testing.T, seeder, leecher func(*ClientConfig)) {
        cfg := TestingConfig(t)
        cfg.Seed = true
        cfg.DataDir = filepath.Join(cfg.DataDir, "server")