From: Matt Joiner Date: Tue, 12 Jun 2018 10:19:53 +0000 (+1000) Subject: Make download cancellable tests more reliable X-Git-Tag: v1.0.0~127^2~39 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=2007f2c2345ea9fb32641c3507141cf09cf3a1bf;p=btrtrc.git Make download cancellable tests more reliable --- diff --git a/client_test.go b/client_test.go index 3705cc78..d74b4e7d 100644 --- a/client_test.go +++ b/client_test.go @@ -807,7 +807,6 @@ func TestAddMetainfoWithNodes(t *testing.T) { } type testDownloadCancelParams struct { - ExportClientStatus bool SetLeecherStorageCapacity bool LeecherStorageCapacity int64 Cancel bool @@ -822,9 +821,7 @@ func testDownloadCancel(t *testing.T, ps testDownloadCancelParams) { seeder, err := NewClient(cfg) require.NoError(t, err) defer seeder.Close() - if ps.ExportClientStatus { - testutil.ExportStatusWriter(seeder, "s") - } + testutil.ExportStatusWriter(seeder, "s") seederTorrent, _, _ := seeder.AddTorrentSpec(TorrentSpecFromMetaInfo(mi)) seederTorrent.VerifyData() leecherDataDir, err := ioutil.TempDir("", "") @@ -839,9 +836,7 @@ func testDownloadCancel(t *testing.T, ps testDownloadCancelParams) { cfg.DataDir = leecherDataDir leecher, _ := NewClient(cfg) defer leecher.Close() - if ps.ExportClientStatus { - testutil.ExportStatusWriter(leecher, "l") - } + testutil.ExportStatusWriter(leecher, "l") leecherGreeting, new, err := leecher.AddTorrentSpec(func() (ret *TorrentSpec) { ret = TorrentSpecFromMetaInfo(mi) ret.ChunkSize = 2 @@ -858,8 +853,18 @@ func testDownloadCancel(t *testing.T, ps testDownloadCancelParams) { leecherGreeting.cancelPiecesLocked(0, leecherGreeting.NumPieces()) } leecherGreeting.cl.mu.Unlock() - - leecherGreeting.AddClientPeer(seeder) + done := make(chan struct{}) + defer close(done) + go func() { + for { + leecherGreeting.AddClientPeer(seeder) + select { + case <-done: + return + case <-time.After(time.Second): + } + } + }() completes := make(map[int]bool, 3) expected := func() map[int]bool { if ps.Cancel {