Add test for #211
This commit is contained in:
parent
afa9d2ba28
commit
10f7a8124a
|
@ -0,0 +1,46 @@
|
|||
package torrent
|
||||
|
||||
import (
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"golang.org/x/time/rate"
|
||||
|
||||
"github.com/anacrolix/torrent/internal/testutil"
|
||||
"github.com/anacrolix/torrent/storage"
|
||||
)
|
||||
|
||||
func TestDropTorrentWhileHashing(t *testing.T) {
|
||||
cfg := TestingConfig()
|
||||
// Ensure the data is present when the torrent is added, and not obtained
|
||||
// over the network as the test runs.
|
||||
cfg.DownloadRateLimiter = rate.NewLimiter(0, 0)
|
||||
cl, err := NewClient(cfg)
|
||||
require.NoError(t, err)
|
||||
defer cl.Close()
|
||||
|
||||
td, mi := testutil.GreetingTestTorrent()
|
||||
tt, new, err := cl.AddTorrentSpec(&TorrentSpec{
|
||||
Storage: storage.NewMMap(td),
|
||||
InfoHash: mi.HashInfoBytes(),
|
||||
InfoBytes: mi.InfoBytes,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
assert.True(t, new)
|
||||
|
||||
// Make sure some of the data is actually there.
|
||||
sub := tt.SubscribePieceStateChanges()
|
||||
for range sub.Values {
|
||||
if tt.BytesCompleted() > 0 {
|
||||
break
|
||||
}
|
||||
}
|
||||
sub.Close()
|
||||
|
||||
r := tt.NewReader()
|
||||
go tt.Drop()
|
||||
io.Copy(ioutil.Discard, r)
|
||||
}
|
Loading…
Reference in New Issue