/usr/share/gocode/src/github.com/hashicorp/serf/command/util_test.go is in golang-github-hashicorp-serf-dev 0.6.4~ds1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | package command
import (
"fmt"
"github.com/hashicorp/serf/command/agent"
"github.com/hashicorp/serf/serf"
"github.com/hashicorp/serf/testutil"
"io"
"math/rand"
"net"
"os"
"testing"
"time"
)
func init() {
// Seed the random number generator
rand.Seed(time.Now().UnixNano())
}
func testAgent(t *testing.T) *agent.Agent {
agentConfig := agent.DefaultConfig()
serfConfig := serf.DefaultConfig()
return testAgentWithConfig(t, agentConfig, serfConfig)
}
func testAgentWithConfig(t *testing.T, agentConfig *agent.Config,
serfConfig *serf.Config) *agent.Agent {
serfConfig.MemberlistConfig.BindAddr = testutil.GetBindAddr().String()
serfConfig.MemberlistConfig.ProbeInterval = 50 * time.Millisecond
serfConfig.MemberlistConfig.ProbeTimeout = 25 * time.Millisecond
serfConfig.MemberlistConfig.SuspicionMult = 1
serfConfig.NodeName = serfConfig.MemberlistConfig.BindAddr
serfConfig.Tags = map[string]string{"role": "test", "tag1": "foo", "tag2": "bar"}
agent, err := agent.Create(agentConfig, serfConfig, nil)
if err != nil {
t.Fatalf("err: %s", err)
}
if err := agent.Start(); err != nil {
t.Fatalf("err: %s", err)
}
return agent
}
func getRPCAddr() string {
for i := 0; i < 500; i++ {
l, err := net.Listen("tcp", fmt.Sprintf("127.0.0.1:%d", rand.Int31n(25000)+1024))
if err == nil {
l.Close()
return l.Addr().String()
}
}
panic("no listener")
}
func testIPC(t *testing.T, a *agent.Agent) (string, *agent.AgentIPC) {
rpcAddr := getRPCAddr()
l, err := net.Listen("tcp", rpcAddr)
if err != nil {
t.Fatalf("err: %s", err)
}
lw := agent.NewLogWriter(512)
mult := io.MultiWriter(os.Stderr, lw)
ipc := agent.NewAgentIPC(a, "", l, mult, lw)
return rpcAddr, ipc
}
|