util.go 1.08 KB
Newer Older
Juan Batiz-Benet's avatar
Juan Batiz-Benet committed
1
2
3
4
5
6
package testutil

import (
	"testing"

	bhost "github.com/jbenet/go-ipfs/p2p/host/basic"
Juan Batiz-Benet's avatar
Juan Batiz-Benet committed
7
8
	inet "github.com/jbenet/go-ipfs/p2p/net"
	swarm "github.com/jbenet/go-ipfs/p2p/net/swarm"
Juan Batiz-Benet's avatar
Juan Batiz-Benet committed
9
10
11
12
	peer "github.com/jbenet/go-ipfs/p2p/peer"
	tu "github.com/jbenet/go-ipfs/util/testutil"

	context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
13
	ma "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr"
Juan Batiz-Benet's avatar
Juan Batiz-Benet committed
14
15
16
17
18
19
20
)

func GenSwarmNetwork(t *testing.T, ctx context.Context) *swarm.Network {
	p := tu.RandPeerNetParamsOrFatal(t)
	ps := peer.NewPeerstore()
	ps.AddPubKey(p.ID, p.PubKey)
	ps.AddPrivKey(p.ID, p.PrivKey)
21
	n, err := swarm.NewNetwork(ctx, []ma.Multiaddr{p.Addr}, p.ID, ps)
Juan Batiz-Benet's avatar
Juan Batiz-Benet committed
22
23
24
	if err != nil {
		t.Fatal(err)
	}
25
	ps.AddAddresses(p.ID, n.ListenAddresses())
Juan Batiz-Benet's avatar
Juan Batiz-Benet committed
26
27
28
29
30
31
32
33
34
35
36
37
38
	return n
}

func DivulgeAddresses(a, b inet.Network) {
	id := a.LocalPeer()
	addrs := a.Peerstore().Addresses(id)
	b.Peerstore().AddAddresses(id, addrs)
}

func GenHostSwarm(t *testing.T, ctx context.Context) *bhost.BasicHost {
	n := GenSwarmNetwork(t, ctx)
	return bhost.New(n)
}
Juan Batiz-Benet's avatar
Juan Batiz-Benet committed
39
40

var RandPeerID = tu.RandPeerID