]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Use testing.T.Name instead of missinggo.GetTestName
authorMatt Joiner <anacrolix@gmail.com>
Fri, 9 Oct 2020 23:59:17 +0000 (10:59 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Fri, 9 Oct 2020 23:59:17 +0000 (10:59 +1100)
This handles subtests correctly, and removes the need to specify when to export due to collisions with the old function.

client_test.go
fs/torrentfs_test.go
internal/testutil/status_writer.go
test/issue377_test.go
test/transfer_test.go

index 6822c328e6ad9d278134c3085e8d48954d4b51da..777c596256116318ed957ff4de5e8633adfce2c5 100644 (file)
@@ -465,7 +465,7 @@ func testDownloadCancel(t *testing.T, ps testDownloadCancelParams) {
        seeder, err := NewClient(cfg)
        require.NoError(t, err)
        defer seeder.Close()
-       defer testutil.ExportStatusWriter(seeder, "s")()
+       defer testutil.ExportStatusWriter(seeder, "s", t)()
        seederTorrent, _, _ := seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi))
        seederTorrent.VerifyData()
        leecherDataDir, err := ioutil.TempDir("", "")
@@ -481,7 +481,7 @@ func testDownloadCancel(t *testing.T, ps testDownloadCancelParams) {
        leecher, err := NewClient(cfg)
        require.NoError(t, err)
        defer leecher.Close()
-       defer testutil.ExportStatusWriter(leecher, "l")()
+       defer testutil.ExportStatusWriter(leecher, "l", t)()
        leecherGreeting, new, err := leecher.AddTorrentSpec(func() (ret *TorrentSpec) {
                ret = TorrentSpecFromMetaInfo(mi)
                ret.ChunkSize = 2
@@ -620,7 +620,7 @@ func TestSetMaxEstablishedConn(t *testing.T) {
                defer cl.Close()
                tt, _ := cl.AddTorrentInfoHash(ih)
                tt.SetMaxEstablishedConns(2)
-               defer testutil.ExportStatusWriter(cl, fmt.Sprintf("%d", i))()
+               defer testutil.ExportStatusWriter(cl, fmt.Sprintf("%d", i), t)()
                tts = append(tts, tt)
        }
        addPeers := func() {
@@ -700,7 +700,7 @@ func testSeederLeecherPair(t *testing.T, seeder func(*ClientConfig), leecher fun
        server, err := NewClient(cfg)
        require.NoError(t, err)
        defer server.Close()
-       defer testutil.ExportStatusWriter(server, "s")()
+       defer testutil.ExportStatusWriter(server, "s", t)()
        magnet1 := makeMagnet(t, server, cfg.DataDir, "test1")
        // Extra torrents are added to test the seeder having to match incoming obfuscated headers
        // against more than one torrent. See issue #114
@@ -714,7 +714,7 @@ func testSeederLeecherPair(t *testing.T, seeder func(*ClientConfig), leecher fun
        client, err := NewClient(cfg)
        require.NoError(t, err)
        defer client.Close()
-       defer testutil.ExportStatusWriter(client, "c")()
+       defer testutil.ExportStatusWriter(client, "c", t)()
        tr, err := client.AddMagnet(magnet1)
        require.NoError(t, err)
        tr.AddClientPeer(server)
index 3c152cbf93257d372b5883b1ec78442aaef96318..cd4dfb1180536c622322eef91558e0041063e371 100644 (file)
@@ -175,7 +175,7 @@ func TestDownloadOnDemand(t *testing.T) {
        seeder, err := torrent.NewClient(cfg)
        require.NoError(t, err)
        defer seeder.Close()
-       defer testutil.ExportStatusWriter(seeder, "s")()
+       defer testutil.ExportStatusWriter(seeder, "s", t)()
        // Just to mix things up, the seeder starts with the data, but the leecher
        // starts with the metainfo.
        seederTorrent, err := seeder.AddMagnet(fmt.Sprintf("magnet:?xt=urn:btih:%s", layout.Metainfo.HashInfoBytes().HexString()))
@@ -194,7 +194,7 @@ func TestDownloadOnDemand(t *testing.T) {
        cfg.ListenPort = 0
        leecher, err := torrent.NewClient(cfg)
        require.NoError(t, err)
-       testutil.ExportStatusWriter(leecher, "l")()
+       testutil.ExportStatusWriter(leecher, "l", t)()
        defer leecher.Close()
        leecherTorrent, err := leecher.AddTorrent(layout.Metainfo)
        require.NoError(t, err)
index 38442649a7d3d3e22f931ad427438b92e293f5c8..15fbf5229ca21f4e3e24a1d0d3d1e0cee4ace6e5 100644 (file)
@@ -5,24 +5,24 @@ import (
        "io"
        "net/http"
        "sync"
+       "testing"
 
        _ "github.com/anacrolix/envpprof"
-       "github.com/anacrolix/missinggo"
 )
 
 type StatusWriter interface {
        WriteStatus(io.Writer)
 }
 
-// The key is the route pattern. The value is nil when the resource is
-// released.
+// The key is the route pattern. The value is nil when the resource is released.
 var (
        mu  sync.Mutex
        sws = map[string]StatusWriter{}
 )
 
-func ExportStatusWriter(sw StatusWriter, path string) (release func()) {
-       pattern := fmt.Sprintf("/%s/%s", missinggo.GetTestName(), path)
+func ExportStatusWriter(sw StatusWriter, path string, t *testing.T) (release func()) {
+       pattern := fmt.Sprintf("/%s/%s", t.Name(), path)
+       t.Logf("exporting status path %q", pattern)
        release = func() {
                mu.Lock()
                defer mu.Unlock()
index c723e51a7228ada4e19c3db28d6e6b4077482e38..abc57a9051b1841534ff213b19bc5ff11af12fc5 100644 (file)
@@ -46,14 +46,14 @@ func testReceiveChunkStorageFailure(t *testing.T, seederFast bool) {
        seederClient, err := torrent.NewClient(seederClientConfig)
        require.NoError(t, err)
        defer seederClient.Close()
-       defer testutil.ExportStatusWriter(seederClient, "s")()
+       defer testutil.ExportStatusWriter(seederClient, "s", t)()
        leecherClientConfig := torrent.TestingConfig()
        leecherClientConfig.Debug = true
        justOneNetwork(leecherClientConfig)
        leecherClient, err := torrent.NewClient(leecherClientConfig)
        require.NoError(t, err)
        defer leecherClient.Close()
-       defer testutil.ExportStatusWriter(leecherClient, "l")()
+       defer testutil.ExportStatusWriter(leecherClient, "l", t)()
        info, err := metainfo.UnmarshalInfo()
        require.NoError(t, err)
        leecherStorage := diskFullStorage{
index adc0ef3d9edf22e664ab56ac52ad730202b51762..6cbc5f89c683d69f0b3710cb7d45b3bffe18f7cb 100644 (file)
@@ -23,7 +23,6 @@ type testClientTransferParams struct {
        Responsive                 bool
        Readahead                  int64
        SetReadahead               bool
-       ExportClientStatus         bool
        LeecherStorage             func(string) storage.ClientImplCloser
        SeederStorage              func(string) storage.ClientImplCloser
        SeederUploadRateLimiter    *rate.Limiter
@@ -70,9 +69,7 @@ func testClientTransfer(t *testing.T, ps testClientTransferParams) {
        if ps.ConfigureSeeder.Client != nil {
                ps.ConfigureSeeder.Client(seeder)
        }
-       if ps.ExportClientStatus {
-               defer testutil.ExportStatusWriter(seeder, "s")()
-       }
+       defer testutil.ExportStatusWriter(seeder, "s", t)()
        seederTorrent, _, _ := seeder.AddTorrentSpec(torrent.TorrentSpecFromMetaInfo(mi))
        // Run a Stats right after Closing the Client. This will trigger the Stats
        // panic in #214 caused by RemoteAddr on Closed uTP sockets.
@@ -104,9 +101,7 @@ func testClientTransfer(t *testing.T, ps testClientTransferParams) {
        if ps.ConfigureLeecher.Client != nil {
                ps.ConfigureLeecher.Client(leecher)
        }
-       if ps.ExportClientStatus {
-               defer testutil.ExportStatusWriter(leecher, "l")()
-       }
+       defer testutil.ExportStatusWriter(leecher, "l", t)()
        leecherTorrent, new, err := leecher.AddTorrentSpec(func() (ret *torrent.TorrentSpec) {
                ret = torrent.TorrentSpecFromMetaInfo(mi)
                ret.ChunkSize = 2
@@ -193,7 +188,6 @@ type storageFactory func(string) storage.ClientImplCloser
 
 func TestClientTransferDefault(t *testing.T) {
        testClientTransfer(t, testClientTransferParams{
-               ExportClientStatus: true,
                LeecherStorage: newFileCacheClientStorageFactory(fileCacheClientStorageFactoryParams{
                        Wrapper: fileCachePieceResourceStorage,
                }),
@@ -202,7 +196,6 @@ func TestClientTransferDefault(t *testing.T) {
 
 func TestClientTransferDefaultNoMetadata(t *testing.T) {
        testClientTransfer(t, testClientTransferParams{
-               ExportClientStatus: true,
                LeecherStorage: newFileCacheClientStorageFactory(fileCacheClientStorageFactoryParams{
                        Wrapper: fileCachePieceResourceStorage,
                }),
@@ -217,7 +210,6 @@ func TestClientTransferRateLimitedUpload(t *testing.T) {
                // chunks are 2 bytes in length. Then the smallest burst we can run
                // with is 2. Time taken is (13-burst)/rate.
                SeederUploadRateLimiter: rate.NewLimiter(11, 2),
-               ExportClientStatus:      true,
        })
        require.True(t, time.Since(started) > time.Second)
 }
@@ -244,8 +236,7 @@ func testClientTransferSmallCache(t *testing.T, setReadahead bool, readahead int
                SetReadahead: setReadahead,
                // Can't readahead too far or the cache will thrash and drop data we
                // thought we had.
-               Readahead:          readahead,
-               ExportClientStatus: true,
+               Readahead: readahead,
 
                // These tests don't work well with more than 1 connection to the seeder.
                ConfigureLeecher: ConfigureClient{
@@ -285,7 +276,7 @@ func TestClientTransferVarious(t *testing.T) {
                        // Seeder storage
                        for _, ss := range []struct {
                                name string
-                               f    func(string) storage.ClientImplCloser
+                               f    storageFactory
                        }{
                                {"File", storage.NewFile},
                                {"Mmap", storage.NewMMap},
@@ -331,7 +322,7 @@ func TestSeedAfterDownloading(t *testing.T) {
        seeder, err := torrent.NewClient(cfg)
        require.NoError(t, err)
        defer seeder.Close()
-       defer testutil.ExportStatusWriter(seeder, "s")()
+       defer testutil.ExportStatusWriter(seeder, "s", t)()
        seederTorrent, ok, err := seeder.AddTorrentSpec(torrent.TorrentSpecFromMetaInfo(mi))
        require.NoError(t, err)
        assert.True(t, ok)
@@ -345,7 +336,7 @@ func TestSeedAfterDownloading(t *testing.T) {
        leecher, err := torrent.NewClient(cfg)
        require.NoError(t, err)
        defer leecher.Close()
-       defer testutil.ExportStatusWriter(leecher, "l")()
+       defer testutil.ExportStatusWriter(leecher, "l", t)()
 
        cfg = torrent.TestingConfig()
        cfg.Seed = false
@@ -355,7 +346,7 @@ func TestSeedAfterDownloading(t *testing.T) {
        leecherLeecher, _ := torrent.NewClient(cfg)
        require.NoError(t, err)
        defer leecherLeecher.Close()
-       defer testutil.ExportStatusWriter(leecherLeecher, "ll")()
+       defer testutil.ExportStatusWriter(leecherLeecher, "ll", t)()
        leecherGreeting, ok, err := leecher.AddTorrentSpec(func() (ret *torrent.TorrentSpec) {
                ret = torrent.TorrentSpecFromMetaInfo(mi)
                ret.ChunkSize = 2