]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Add test for #211
authorMatt Joiner <anacrolix@gmail.com>
Fri, 1 Dec 2017 07:11:20 +0000 (18:11 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Fri, 1 Dec 2017 07:11:20 +0000 (18:11 +1100)
issue211_test.go [new file with mode: 0644]

diff --git a/issue211_test.go b/issue211_test.go
new file mode 100644 (file)
index 0000000..8a0d8b3
--- /dev/null
@@ -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)
+}