]> Sergey Matveev's repositories - btrtrc.git/blobdiff - client-nowasm_test.go
Fixes for wasm
[btrtrc.git] / client-nowasm_test.go
diff --git a/client-nowasm_test.go b/client-nowasm_test.go
new file mode 100644 (file)
index 0000000..62c5a1d
--- /dev/null
@@ -0,0 +1,55 @@
+//go:build !wasm
+// +build !wasm
+
+package torrent
+
+import (
+       "os"
+       "testing"
+
+       "github.com/anacrolix/torrent/internal/testutil"
+       "github.com/anacrolix/torrent/storage"
+       "github.com/stretchr/testify/assert"
+       "github.com/stretchr/testify/require"
+)
+
+func TestBoltPieceCompletionClosedWhenClientClosed(t *testing.T) {
+       cfg := TestingConfig(t)
+       pc, err := storage.NewBoltPieceCompletion(cfg.DataDir)
+       require.NoError(t, err)
+       ci := storage.NewFileWithCompletion(cfg.DataDir, pc)
+       defer ci.Close()
+       cfg.DefaultStorage = ci
+       cl, err := NewClient(cfg)
+       require.NoError(t, err)
+       cl.Close()
+       // And again, https://github.com/anacrolix/torrent/issues/158
+       cl, err = NewClient(cfg)
+       require.NoError(t, err)
+       cl.Close()
+}
+
+func TestIssue335(t *testing.T) {
+       dir, mi := testutil.GreetingTestTorrent()
+       defer os.RemoveAll(dir)
+       cfg := TestingConfig(t)
+       cfg.Seed = false
+       cfg.Debug = true
+       cfg.DataDir = dir
+       comp, err := storage.NewBoltPieceCompletion(dir)
+       require.NoError(t, err)
+       defer comp.Close()
+       cfg.DefaultStorage = storage.NewMMapWithCompletion(dir, comp)
+       cl, err := NewClient(cfg)
+       require.NoError(t, err)
+       defer cl.Close()
+       tor, new, err := cl.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
+       require.NoError(t, err)
+       assert.True(t, new)
+       require.True(t, cl.WaitAll())
+       tor.Drop()
+       _, new, err = cl.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
+       require.NoError(t, err)
+       assert.True(t, new)
+       require.True(t, cl.WaitAll())
+}