-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathhns_test.go
134 lines (106 loc) · 1.97 KB
/
hns_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
package hnsquery
import (
"context"
"fmt"
"os"
"sync"
"testing"
"time"
)
func TestNewClient(t *testing.T) {
if testing.Short() {
t.Skip("skipping integration test")
return
}
c, err := NewClient(&Config{
DataDir: os.TempDir(),
})
if err != nil {
t.Fatal(err)
}
defer c.Destroy()
c.Run()
}
func TestClient_GetZone(t *testing.T) {
if testing.Short() {
t.Skip("skipping get zone integration test")
return
}
c, err := NewClient(&Config{
DataDir: os.TempDir(),
})
if err != nil {
t.Fatal(err)
}
defer c.Destroy()
ready := make(chan error)
c.Start(ready)
<-ready
names := []string{"proofofconcept",
"3b",
"3b",
"schematic",
"nb",
"tlsa",
"letsdane",
"forever",
}
// duplicate
names = append(names, names...)
var wg sync.WaitGroup
wg.Add(len(names))
for _, name := range names {
go func(zone string) {
defer wg.Done()
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
rrs, err := c.GetZone(ctx, zone)
if err != nil {
t.Error(err)
return
}
if len(rrs) == 0 {
t.Fatal("got no records")
}
for _, rr := range rrs {
fmt.Println(rr)
}
}(name)
}
wg.Wait()
fmt.Println("done")
}
func TestClient_Start(t *testing.T) {
if testing.Short() {
t.Skip("skipping client start integration test")
return
}
c, err := NewClient(&Config{
DataDir: os.TempDir(),
})
if err != nil {
t.Fatal(err)
}
defer c.Destroy()
ready := make(chan error)
c.Start(ready)
<-ready
if !c.Ready() {
t.Fatal("chain should be ready")
}
if c.ActivePeerCount() == 0 {
t.Fatal("got no active peers")
}
fmt.Println("Progress: ", c.Progress())
fmt.Println("Peers: ", c.PeerCount())
fmt.Println("Active Peers: ", c.ActivePeerCount())
fmt.Println("Block height: ", c.Height())
fmt.Println("proofofconcept zone:")
zone, err := c.GetZone(context.Background(), "proofofconcept")
if err != nil {
t.Fatal(err)
}
for _, rr := range zone {
fmt.Println(rr)
}
}