Skip to content

Commit 1d5d05f

Browse files
committed
coreapi: dht tests
License: MIT Signed-off-by: Łukasz Magiera <[email protected]>
1 parent 9725e2f commit 1d5d05f

File tree

1 file changed

+112
-0
lines changed

1 file changed

+112
-0
lines changed

core/coreapi/dht_test.go

+112
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
package coreapi_test
2+
3+
import (
4+
"context"
5+
"io"
6+
"io/ioutil"
7+
"testing"
8+
9+
coreapi "github.com/ipfs/go-ipfs/core/coreapi"
10+
11+
peer "gx/ipfs/QmZoWKhxUmZ2seW4BzX6fJkNR8hh9PsGModr7q171yq2SS/go-libp2p-peer"
12+
blocks "gx/ipfs/Qmej7nf81hi2x2tvjRBF3mcp74sQyuDH4VMYDGd1YtXjb2/go-block-format"
13+
)
14+
15+
func TestDhtFindPeer(t *testing.T) {
16+
ctx := context.Background()
17+
nds, apis, err := makeAPISwarm(ctx, true, 3)
18+
if err != nil {
19+
t.Fatal(err)
20+
}
21+
22+
out, err := apis[2].Dht().FindPeer(ctx, peer.ID(nds[0].Identity))
23+
if err != nil {
24+
t.Fatal(err)
25+
}
26+
27+
addr := <-out
28+
29+
if addr.String() != "/ip4/127.0.0.1/tcp/4001" {
30+
t.Errorf("got unexpected address from FindPeer: %s", addr.String())
31+
}
32+
33+
out, err = apis[1].Dht().FindPeer(ctx, peer.ID(nds[2].Identity))
34+
if err != nil {
35+
t.Fatal(err)
36+
}
37+
38+
addr = <-out
39+
40+
if addr.String() != "/ip4/127.0.2.1/tcp/4001" {
41+
t.Errorf("got unexpected address from FindPeer: %s", addr.String())
42+
}
43+
}
44+
45+
func TestDhtFindProviders(t *testing.T) {
46+
ctx := context.Background()
47+
nds, apis, err := makeAPISwarm(ctx, true, 3)
48+
if err != nil {
49+
t.Fatal(err)
50+
}
51+
52+
p, err := addTestObject(ctx, apis[0])
53+
if err != nil {
54+
t.Fatal(err)
55+
}
56+
57+
out, err := apis[2].Dht().FindProviders(ctx, p, apis[2].Dht().WithNumProviders(1))
58+
if err != nil {
59+
t.Fatal(err)
60+
}
61+
62+
provider := <-out
63+
64+
if provider.String() != nds[0].Identity.String() {
65+
t.Errorf("got wrong provider: %s != %s", provider.String(), nds[0].Identity.String())
66+
}
67+
}
68+
69+
func TestDhtProvide(t *testing.T) {
70+
ctx := context.Background()
71+
nds, apis, err := makeAPISwarm(ctx, true, 3)
72+
if err != nil {
73+
t.Fatal(err)
74+
}
75+
76+
// TODO: replace once there is local add on unixfs or somewhere
77+
data, err := ioutil.ReadAll(&io.LimitedReader{R: rnd, N: 4092})
78+
if err != nil {
79+
t.Fatal(err)
80+
}
81+
82+
b := blocks.NewBlock(data)
83+
nds[0].Blockstore.Put(b)
84+
p := coreapi.ParseCid(b.Cid())
85+
86+
out, err := apis[2].Dht().FindProviders(ctx, p, apis[2].Dht().WithNumProviders(1))
87+
if err != nil {
88+
t.Fatal(err)
89+
}
90+
91+
provider := <-out
92+
93+
if provider.String() != "<peer.ID >" {
94+
t.Errorf("got wrong provider: %s != %s", provider.String(), nds[0].Identity.String())
95+
}
96+
97+
err = apis[0].Dht().Provide(ctx, p)
98+
if err != nil {
99+
t.Fatal(err)
100+
}
101+
102+
out, err = apis[2].Dht().FindProviders(ctx, p, apis[2].Dht().WithNumProviders(1))
103+
if err != nil {
104+
t.Fatal(err)
105+
}
106+
107+
provider = <-out
108+
109+
if provider.String() != nds[0].Identity.String() {
110+
t.Errorf("got wrong provider: %s != %s", provider.String(), nds[0].Identity.String())
111+
}
112+
}

0 commit comments

Comments
 (0)