forked from etcd-io/etcd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
server_utils.go
40 lines (33 loc) · 826 Bytes
/
server_utils.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
package tests
import (
"github.com/coreos/etcd/config"
"github.com/coreos/etcd/etcd"
"github.com/coreos/etcd/server"
)
const (
testName = "ETCDTEST"
testClientURL = "localhost:4401"
testRaftURL = "localhost:7701"
testSnapshotCount = 10000
testHeartbeatInterval = 50
testElectionTimeout = 200
testDataDir = "/tmp/ETCDTEST"
)
// Starts a new server.
func RunServer(f func(*server.Server)) {
c := config.New()
c.Name = testName
c.Addr = testClientURL
c.Peer.Addr = testRaftURL
c.DataDir = testDataDir
c.Force = true
c.Peer.HeartbeatInterval = testHeartbeatInterval
c.Peer.ElectionTimeout = testElectionTimeout
c.SnapshotCount = testSnapshotCount
i := etcd.New(c)
go i.Run()
<-i.ReadyNotify()
// Execute the function passed in.
f(i.Server)
i.Stop()
}