...
1 package membership
2
3 import (
4 "testing"
5
6 "github.com/coreos/go-semver/semver"
7 "github.com/stretchr/testify/assert"
8 "go.etcd.io/etcd/client/pkg/v3/types"
9 betesting "go.etcd.io/etcd/server/v3/mvcc/backend/testing"
10
11 "go.etcd.io/etcd/server/v3/mvcc/backend"
12 "go.uber.org/zap"
13 )
14
15 func TestAddRemoveMember(t *testing.T) {
16 c := newTestCluster(t, nil)
17 be, bepath := betesting.NewDefaultTmpBackend(t)
18 c.SetBackend(be)
19 c.AddMember(newTestMember(17, nil, "node17", nil), true)
20 c.RemoveMember(17, true)
21 c.AddMember(newTestMember(18, nil, "node18", nil), true)
22
23
24 c.RemoveMember(17, true)
25 err := be.Close()
26 assert.NoError(t, err)
27
28 be2 := backend.NewDefaultBackend(bepath)
29 defer func() {
30 assert.NoError(t, be2.Close())
31 }()
32
33 if false {
34
35 c2 := newTestCluster(t, nil)
36 c2.SetBackend(be2)
37 c2.Recover(func(*zap.Logger, *semver.Version) {})
38 assert.Equal(t, []*Member{{ID: types.ID(18),
39 Attributes: Attributes{Name: "node18"}}}, c2.Members())
40 assert.Equal(t, true, c2.IsIDRemoved(17))
41 assert.Equal(t, false, c2.IsIDRemoved(18))
42 }
43 }
44
View as plain text