Skip to content

Commit 6945cb6

Browse files
committed
test: wait for node startup in helper
1 parent 50a83b0 commit 6945cb6

File tree

1 file changed

+39
-5
lines changed

1 file changed

+39
-5
lines changed

adapter/test_util.go

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ func shutdown(nodes []Node) {
2626
for _, n := range nodes {
2727
n.grpcServer.Stop()
2828
n.redisServer.Stop()
29+
if n.raft != nil {
30+
n.raft.Shutdown()
31+
}
32+
if n.tm != nil {
33+
_ = n.tm.Close()
34+
}
2935
}
3036
}
3137

@@ -80,15 +86,19 @@ type Node struct {
8086
redisAddress string
8187
grpcServer *grpc.Server
8288
redisServer *RedisServer
89+
raft *raft.Raft
90+
tm *transport.Manager
8391
}
8492

85-
func newNode(grpcAddress, raftAddress, redisAddress string, grpcs *grpc.Server, rd *RedisServer) Node {
93+
func newNode(grpcAddress, raftAddress, redisAddress string, r *raft.Raft, tm *transport.Manager, grpcs *grpc.Server, rd *RedisServer) Node {
8694
return Node{
8795
grpcAddress: grpcAddress,
8896
raftAddress: raftAddress,
8997
redisAddress: redisAddress,
9098
grpcServer: grpcs,
9199
redisServer: rd,
100+
raft: r,
101+
tm: tm,
92102
}
93103
}
94104

@@ -98,6 +108,11 @@ func createNode(t *testing.T, n int) ([]Node, []string, []string) {
98108
var redisAdders []string
99109
var nodes []Node
100110

111+
const (
112+
waitTimeout = 5 * time.Second
113+
waitInterval = 100 * time.Millisecond
114+
)
115+
101116
cfg := raft.Configuration{}
102117
ports := make([]portsAdress, n)
103118

@@ -165,14 +180,33 @@ func createNode(t *testing.T, n int) ([]Node, []string, []string) {
165180
port.grpcAddress,
166181
port.raftAddress,
167182
port.redisAddress,
183+
r,
184+
tm,
168185
s,
169-
rd),
170-
)
186+
rd,
187+
))
171188

172189
}
173190

174-
//nolint:mnd
175-
time.Sleep(10 * time.Second)
191+
for _, n := range nodes {
192+
assert.Eventually(t, func() bool {
193+
conn, err := net.DialTimeout("tcp", n.grpcAddress, time.Second)
194+
if err != nil {
195+
return false
196+
}
197+
_ = conn.Close()
198+
conn, err = net.DialTimeout("tcp", n.redisAddress, time.Second)
199+
if err != nil {
200+
return false
201+
}
202+
_ = conn.Close()
203+
return true
204+
}, waitTimeout, waitInterval)
205+
}
206+
207+
assert.Eventually(t, func() bool {
208+
return nodes[0].raft.State() == raft.Leader
209+
}, waitTimeout, waitInterval)
176210

177211
return nodes, grpcAdders, redisAdders
178212
}

0 commit comments

Comments
 (0)