-
Notifications
You must be signed in to change notification settings - Fork 291
/
mocks.go
87 lines (68 loc) · 1.96 KB
/
mocks.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
//
// (C) Copyright 2020-2022 Intel Corporation.
//
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
package system
import (
"fmt"
"net"
"testing"
"time"
"github.com/google/uuid"
"github.com/daos-stack/daos/src/control/common/test"
. "github.com/daos-stack/daos/src/control/lib/ranklist"
"github.com/daos-stack/daos/src/control/logging"
)
func MockControlAddr(t *testing.T, idx uint32) *net.TCPAddr {
t.Helper()
addr, err := net.ResolveTCPAddr("tcp",
fmt.Sprintf("127.0.0.%d:10001", idx))
if err != nil {
t.Fatal(err)
}
return addr
}
// MockMemberFullSpec returns a reference to a new member struct.
func MockMemberFullSpec(t *testing.T, rank Rank, uuidStr string, uri string, addr *net.TCPAddr, state MemberState) *Member {
t.Helper()
newUUID, err := uuid.Parse(uuidStr)
if err != nil {
t.Fatal(err)
}
return &Member{
Rank: rank,
UUID: newUUID,
PrimaryFabricURI: uri,
Addr: addr,
State: state,
FaultDomain: MustCreateFaultDomain(),
LastUpdate: time.Now(),
}
}
// MockMember returns a system member with appropriate values.
func MockMember(t *testing.T, idx uint32, state MemberState, info ...string) *Member {
t.Helper()
addr := MockControlAddr(t, idx)
m := MockMemberFullSpec(t, Rank(idx), test.MockUUID(int32(idx)), addr.String(), addr, state)
m.PrimaryFabricContexts = idx
if len(info) > 0 {
m.Info = info[0]
}
return m
}
// MockMemberResult return a result from an action on a system member.
func MockMemberResult(rank Rank, action string, err error, state MemberState) *MemberResult {
result := NewMemberResult(rank, err, state)
result.Action = action
return result
}
// MockMembership returns an initialized *Membership using the given MemberStore.
func MockMembership(t *testing.T, log logging.Logger, mdb MemberStore, resolver TCPResolver) *Membership {
t.Helper()
m := NewMembership(log, mdb)
if resolver != nil {
return m.WithTCPResolver(resolver)
}
return m
}