]> Sergey Matveev's repositories - btrtrc.git/blob - client-nowasm_test.go
Fix panic logging unknown holepunch error code
[btrtrc.git] / client-nowasm_test.go
1 //go:build !wasm
2 // +build !wasm
3
4 package torrent
5
6 import (
7         "os"
8         "testing"
9
10         "github.com/stretchr/testify/assert"
11         "github.com/stretchr/testify/require"
12
13         "github.com/anacrolix/torrent/internal/testutil"
14         "github.com/anacrolix/torrent/storage"
15 )
16
17 func TestBoltPieceCompletionClosedWhenClientClosed(t *testing.T) {
18         cfg := TestingConfig(t)
19         pc, err := storage.NewBoltPieceCompletion(cfg.DataDir)
20         require.NoError(t, err)
21         ci := storage.NewFileWithCompletion(cfg.DataDir, pc)
22         defer ci.Close()
23         cfg.DefaultStorage = ci
24         cl, err := NewClient(cfg)
25         require.NoError(t, err)
26         cl.Close()
27         // And again, https://github.com/anacrolix/torrent/issues/158
28         cl, err = NewClient(cfg)
29         require.NoError(t, err)
30         cl.Close()
31 }
32
33 func TestIssue335(t *testing.T) {
34         dir, mi := testutil.GreetingTestTorrent()
35         defer os.RemoveAll(dir)
36         cfg := TestingConfig(t)
37         cfg.Seed = false
38         cfg.Debug = true
39         cfg.DataDir = dir
40         comp, err := storage.NewBoltPieceCompletion(dir)
41         require.NoError(t, err)
42         defer comp.Close()
43         cfg.DefaultStorage = storage.NewMMapWithCompletion(dir, comp)
44         cl, err := NewClient(cfg)
45         require.NoError(t, err)
46         defer cl.Close()
47         tor, new, err := cl.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
48         require.NoError(t, err)
49         assert.True(t, new)
50         require.True(t, cl.WaitAll())
51         tor.Drop()
52         _, new, err = cl.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
53         require.NoError(t, err)
54         assert.True(t, new)
55         require.True(t, cl.WaitAll())
56 }