From fbba08216e7b996a74e28fce626f603eab480e80 Mon Sep 17 00:00:00 2001 From: Cory Schwartz Date: Wed, 14 Apr 2021 19:19:58 -0700 Subject: [PATCH 1/3] fix go vet --- p2p/net/swarm/limiter_test.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/p2p/net/swarm/limiter_test.go b/p2p/net/swarm/limiter_test.go index 367e099fd9..5999ff10a6 100644 --- a/p2p/net/swarm/limiter_test.go +++ b/p2p/net/swarm/limiter_test.go @@ -2,6 +2,7 @@ package swarm import ( "context" + "errors" "fmt" "math/rand" "strconv" @@ -379,8 +380,12 @@ func TestFDLimitUnderflow(t *testing.T) { addrs = append(addrs, addrWithPort(t, i)) } + wg := sync.WaitGroup{} + wg.Add(1000) + errs := make(chan error, 1000) for i := 0; i < 1000; i++ { go func(id peer.ID, i int) { + defer wg.Done() ctx, cancel := context.WithCancel(context.Background()) resp := make(chan dialResult) @@ -406,12 +411,19 @@ func TestFDLimitUnderflow(t *testing.T) { if res.Err != nil { return } - t.Fatal("got dial res, shouldn't") + errs <- errors.New("got dial res, but shouldn't") } }(peer.ID(fmt.Sprintf("testpeer%d", i%20)), i) } - time.Sleep(time.Second * 3) + go func() { + wg.Wait() + close(errs) + }() + + for err := range errs { + t.Fatal(err) + } l.lk.Lock() fdConsuming := l.fdConsuming From 8dc70f2421de38865b6d86cf40125ff30151abc9 Mon Sep 17 00:00:00 2001 From: Cory Schwartz Date: Wed, 14 Apr 2021 21:34:52 -0700 Subject: [PATCH 2/3] more tests after merge --- p2p/net/swarm/dial_test.go | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/p2p/net/swarm/dial_test.go b/p2p/net/swarm/dial_test.go index 2a966a4662..1bad4d9f3f 100644 --- a/p2p/net/swarm/dial_test.go +++ b/p2p/net/swarm/dial_test.go @@ -583,6 +583,7 @@ func TestDialSimultaneousJoin(t *testing.T) { go acceptAndHang(s2silentListener) connch := make(chan network.Conn, 512) + errs := make(chan error, 2) // start a dial to s2 through the silent addr go func() { @@ -590,12 +591,15 @@ func TestDialSimultaneousJoin(t *testing.T) { c, err := s1.DialPeer(ctx, s2.LocalPeer()) if err != nil { - t.Fatal(err) + errs <- err + connch <- nil + return } t.Logf("first dial succedded; conn: %+v", c) connch <- c + errs <- nil }() // wait a bit for the dial to take hold @@ -605,18 +609,22 @@ func TestDialSimultaneousJoin(t *testing.T) { go func() { s2addrs, err := s2.InterfaceListenAddresses() if err != nil { - t.Fatal(err) + errs <- err + return } s1.Peerstore().AddAddrs(s2.LocalPeer(), s2addrs[:1], peerstore.PermanentAddrTTL) c, err := s1.DialPeer(ctx, s2.LocalPeer()) if err != nil { - t.Fatal(err) + errs <- err + connch <- nil + return } t.Logf("second dial succedded; conn: %+v", c) connch <- c + errs <- nil }() // wait for the second dial to finish @@ -626,16 +634,27 @@ func TestDialSimultaneousJoin(t *testing.T) { go func() { c, err := s1.DialPeer(ctx, s2.LocalPeer()) if err != nil { - t.Fatal(err) + errs <- err + connch <- nil + return } t.Logf("third dial succedded; conn: %+v", c) connch <- c + errs <- nil }() c3 := <-connch + // raise any errors from the two + for i := 0; i < 3; i++ { + err := <-errs + if err != nil { + t.Fatal(err) + } + } + if c2 != c3 { t.Fatal("expected c2 and c3 to be the same") } From b00734a0b3e6c525543384fa13838689209a8ed9 Mon Sep 17 00:00:00 2001 From: Cory Schwartz Date: Wed, 14 Apr 2021 21:36:09 -0700 Subject: [PATCH 3/3] typeo --- p2p/net/swarm/dial_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/p2p/net/swarm/dial_test.go b/p2p/net/swarm/dial_test.go index 1bad4d9f3f..70eeb9f51d 100644 --- a/p2p/net/swarm/dial_test.go +++ b/p2p/net/swarm/dial_test.go @@ -647,7 +647,7 @@ func TestDialSimultaneousJoin(t *testing.T) { c3 := <-connch - // raise any errors from the two + // raise any errors from the previous goroutines for i := 0; i < 3; i++ { err := <-errs if err != nil {