github.com/keltia/go-ipfs@v0.3.8-0.20150909044612-210793031c63/p2p/net/swarm/simul_test.go (about) 1 package swarm 2 3 import ( 4 "sync" 5 "testing" 6 "time" 7 8 peer "github.com/ipfs/go-ipfs/p2p/peer" 9 ci "github.com/ipfs/go-ipfs/util/testutil/ci" 10 11 ma "github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr" 12 context "github.com/ipfs/go-ipfs/Godeps/_workspace/src/golang.org/x/net/context" 13 ) 14 15 func TestSimultOpen(t *testing.T) { 16 // t.Skip("skipping for another test") 17 t.Parallel() 18 19 ctx := context.Background() 20 swarms := makeSwarms(ctx, t, 2) 21 22 // connect everyone 23 { 24 var wg sync.WaitGroup 25 connect := func(s *Swarm, dst peer.ID, addr ma.Multiaddr) { 26 // copy for other peer 27 log.Debugf("TestSimultOpen: connecting: %s --> %s (%s)", s.local, dst, addr) 28 s.peers.AddAddr(dst, addr, peer.PermanentAddrTTL) 29 if _, err := s.Dial(ctx, dst); err != nil { 30 t.Fatal("error swarm dialing to peer", err) 31 } 32 wg.Done() 33 } 34 35 log.Info("Connecting swarms simultaneously.") 36 wg.Add(2) 37 go connect(swarms[0], swarms[1].local, swarms[1].ListenAddresses()[0]) 38 go connect(swarms[1], swarms[0].local, swarms[0].ListenAddresses()[0]) 39 wg.Wait() 40 } 41 42 for _, s := range swarms { 43 s.Close() 44 } 45 } 46 47 func TestSimultOpenMany(t *testing.T) { 48 // t.Skip("very very slow") 49 50 addrs := 20 51 rounds := 10 52 if ci.IsRunning() { 53 addrs = 10 54 rounds = 5 55 } 56 SubtestSwarm(t, addrs, rounds) 57 } 58 59 func TestSimultOpenFewStress(t *testing.T) { 60 if testing.Short() { 61 t.SkipNow() 62 } 63 // t.Skip("skipping for another test") 64 t.Parallel() 65 66 msgs := 40 67 swarms := 2 68 rounds := 10 69 // rounds := 100 70 71 for i := 0; i < rounds; i++ { 72 SubtestSwarm(t, swarms, msgs) 73 <-time.After(10 * time.Millisecond) 74 } 75 }