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