Add test for #211

This commit is contained in:
Matt Joiner 2017-12-01 18:11:20 +11:00
parent afa9d2ba28
commit 10f7a8124a
1 changed files with 46 additions and 0 deletions

46
issue211_test.go Normal file
View File

@ -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)
}