Skip to content
This repository was archived by the owner on May 26, 2022. It is now read-only.

Commit 827488e

Browse files
authored
Merge pull request #253 from coryschwartz/feat/fix-go-vet
fix go vet
2 parents 68ae307 + efeb82b commit 827488e

File tree

2 files changed

+37
-6
lines changed

2 files changed

+37
-6
lines changed

dial_test.go

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -583,19 +583,23 @@ func TestDialSimultaneousJoin(t *testing.T) {
583583
go acceptAndHang(s2silentListener)
584584

585585
connch := make(chan network.Conn, 512)
586+
errs := make(chan error, 2)
586587

587588
// start a dial to s2 through the silent addr
588589
go func() {
589590
s1.Peerstore().AddAddrs(s2.LocalPeer(), s2silentAddrs, peerstore.PermanentAddrTTL)
590591

591592
c, err := s1.DialPeer(ctx, s2.LocalPeer())
592593
if err != nil {
593-
t.Fatal(err)
594+
errs <- err
595+
connch <- nil
596+
return
594597
}
595598

596599
t.Logf("first dial succedded; conn: %+v", c)
597600

598601
connch <- c
602+
errs <- nil
599603
}()
600604

601605
// wait a bit for the dial to take hold
@@ -605,18 +609,22 @@ func TestDialSimultaneousJoin(t *testing.T) {
605609
go func() {
606610
s2addrs, err := s2.InterfaceListenAddresses()
607611
if err != nil {
608-
t.Fatal(err)
612+
errs <- err
613+
return
609614
}
610615
s1.Peerstore().AddAddrs(s2.LocalPeer(), s2addrs[:1], peerstore.PermanentAddrTTL)
611616

612617
c, err := s1.DialPeer(ctx, s2.LocalPeer())
613618
if err != nil {
614-
t.Fatal(err)
619+
errs <- err
620+
connch <- nil
621+
return
615622
}
616623

617624
t.Logf("second dial succedded; conn: %+v", c)
618625

619626
connch <- c
627+
errs <- nil
620628
}()
621629

622630
// wait for the second dial to finish
@@ -626,16 +634,27 @@ func TestDialSimultaneousJoin(t *testing.T) {
626634
go func() {
627635
c, err := s1.DialPeer(ctx, s2.LocalPeer())
628636
if err != nil {
629-
t.Fatal(err)
637+
errs <- err
638+
connch <- nil
639+
return
630640
}
631641

632642
t.Logf("third dial succedded; conn: %+v", c)
633643

634644
connch <- c
645+
errs <- nil
635646
}()
636647

637648
c3 := <-connch
638649

650+
// raise any errors from the previous goroutines
651+
for i := 0; i < 3; i++ {
652+
err := <-errs
653+
if err != nil {
654+
t.Fatal(err)
655+
}
656+
}
657+
639658
if c2 != c3 {
640659
t.Fatal("expected c2 and c3 to be the same")
641660
}

limiter_test.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package swarm
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"math/rand"
78
"strconv"
@@ -379,8 +380,12 @@ func TestFDLimitUnderflow(t *testing.T) {
379380
addrs = append(addrs, addrWithPort(t, i))
380381
}
381382

383+
wg := sync.WaitGroup{}
384+
wg.Add(1000)
385+
errs := make(chan error, 1000)
382386
for i := 0; i < 1000; i++ {
383387
go func(id peer.ID, i int) {
388+
defer wg.Done()
384389
ctx, cancel := context.WithCancel(context.Background())
385390

386391
resp := make(chan dialResult)
@@ -406,12 +411,19 @@ func TestFDLimitUnderflow(t *testing.T) {
406411
if res.Err != nil {
407412
return
408413
}
409-
t.Fatal("got dial res, shouldn't")
414+
errs <- errors.New("got dial res, but shouldn't")
410415
}
411416
}(peer.ID(fmt.Sprintf("testpeer%d", i%20)), i)
412417
}
413418

414-
time.Sleep(time.Second * 3)
419+
go func() {
420+
wg.Wait()
421+
close(errs)
422+
}()
423+
424+
for err := range errs {
425+
t.Fatal(err)
426+
}
415427

416428
l.lk.Lock()
417429
fdConsuming := l.fdConsuming

0 commit comments

Comments
 (0)