github.com/zignig/go-ipfs@v0.0.0-20141111235910-c9e5fdf55a52/net/swarm/simul_test.go (about) 1 package swarm 2 3 import ( 4 "fmt" 5 "sync" 6 "testing" 7 8 peer "github.com/jbenet/go-ipfs/peer" 9 10 context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context" 11 ) 12 13 func TestSimultOpen(t *testing.T) { 14 // t.Skip("skipping for another test") 15 16 addrs := []string{ 17 "/ip4/127.0.0.1/tcp/1244", 18 "/ip4/127.0.0.1/tcp/1245", 19 } 20 21 ctx := context.Background() 22 swarms, _ := makeSwarms(ctx, t, addrs) 23 24 // connect everyone 25 { 26 var wg sync.WaitGroup 27 connect := func(s *Swarm, dst peer.Peer) { 28 // copy for other peer 29 cp := peer.WithID(dst.ID()) 30 cp.AddAddress(dst.Addresses()[0]) 31 32 if _, err := s.Dial(cp); err != nil { 33 t.Fatal("error swarm dialing to peer", err) 34 } 35 wg.Done() 36 } 37 38 log.Info("Connecting swarms simultaneously.") 39 wg.Add(2) 40 go connect(swarms[0], swarms[1].local) 41 go connect(swarms[1], swarms[0].local) 42 wg.Wait() 43 } 44 45 for _, s := range swarms { 46 s.Close() 47 } 48 } 49 50 func TestSimultOpenMany(t *testing.T) { 51 t.Skip("laggy") 52 53 many := 500 54 addrs := []string{} 55 for i := 2200; i < (2200 + many); i++ { 56 s := fmt.Sprintf("/ip4/127.0.0.1/tcp/%d", i) 57 addrs = append(addrs, s) 58 } 59 60 SubtestSwarm(t, addrs, 10) 61 } 62 63 func TestSimultOpenFewStress(t *testing.T) { 64 // t.Skip("skipping for another test") 65 66 num := 10 67 // num := 100 68 for i := 0; i < num; i++ { 69 addrs := []string{ 70 fmt.Sprintf("/ip4/127.0.0.1/tcp/%d", 1900+i), 71 fmt.Sprintf("/ip4/127.0.0.1/tcp/%d", 2900+i), 72 } 73 74 SubtestSwarm(t, addrs, 10) 75 } 76 }