github.com/keltia/go-ipfs@v0.3.8-0.20150909044612-210793031c63/p2p/test/util/util.go (about) 1 package testutil 2 3 import ( 4 "testing" 5 6 metrics "github.com/ipfs/go-ipfs/metrics" 7 bhost "github.com/ipfs/go-ipfs/p2p/host/basic" 8 inet "github.com/ipfs/go-ipfs/p2p/net" 9 swarm "github.com/ipfs/go-ipfs/p2p/net/swarm" 10 peer "github.com/ipfs/go-ipfs/p2p/peer" 11 tu "github.com/ipfs/go-ipfs/util/testutil" 12 13 ma "github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr" 14 context "github.com/ipfs/go-ipfs/Godeps/_workspace/src/golang.org/x/net/context" 15 ) 16 17 func GenSwarmNetwork(t *testing.T, ctx context.Context) *swarm.Network { 18 p := tu.RandPeerNetParamsOrFatal(t) 19 ps := peer.NewPeerstore() 20 ps.AddPubKey(p.ID, p.PubKey) 21 ps.AddPrivKey(p.ID, p.PrivKey) 22 n, err := swarm.NewNetwork(ctx, []ma.Multiaddr{p.Addr}, p.ID, ps, metrics.NewBandwidthCounter()) 23 if err != nil { 24 t.Fatal(err) 25 } 26 ps.AddAddrs(p.ID, n.ListenAddresses(), peer.PermanentAddrTTL) 27 return n 28 } 29 30 func DivulgeAddresses(a, b inet.Network) { 31 id := a.LocalPeer() 32 addrs := a.Peerstore().Addrs(id) 33 b.Peerstore().AddAddrs(id, addrs, peer.PermanentAddrTTL) 34 } 35 36 func GenHostSwarm(t *testing.T, ctx context.Context) *bhost.BasicHost { 37 n := GenSwarmNetwork(t, ctx) 38 return bhost.New(n) 39 } 40 41 var RandPeerID = tu.RandPeerID