From 67a0de4bbcee373dbec0d79515a2b8ec2a8502cc Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Tue, 11 Nov 2014 11:19:34 -0800 Subject: [PATCH] etcdserver: use member pointer for all tests --- etcdserver/cluster_test.go | 136 ++++++++++++++++++------------------- etcdserver/sender_test.go | 12 ++-- etcdserver/server_test.go | 4 +- 3 files changed, 75 insertions(+), 77 deletions(-) diff --git a/etcdserver/cluster_test.go b/etcdserver/cluster_test.go index 503bc468e..101d84e8d 100644 --- a/etcdserver/cluster_test.go +++ b/etcdserver/cluster_test.go @@ -31,14 +31,14 @@ import ( func TestClusterFromString(t *testing.T) { tests := []struct { f string - mems []Member + mems []*Member }{ { "mem1=http://10.0.0.1:2379,mem1=http://128.193.4.20:2379,mem2=http://10.0.0.2:2379,default=http://127.0.0.1:2379", - []Member{ - *newTestMember(4322322643958477905, []string{"http://10.0.0.1:2379", "http://128.193.4.20:2379"}, "mem1", nil), - *newTestMember(3141198903430435750, []string{"http://10.0.0.2:2379"}, "mem2", nil), - *newTestMember(12762790032478827328, []string{"http://127.0.0.1:2379"}, "default", nil), + []*Member{ + newTestMember(3141198903430435750, []string{"http://10.0.0.2:2379"}, "mem2", nil), + newTestMember(4322322643958477905, []string{"http://10.0.0.1:2379", "http://128.193.4.20:2379"}, "mem1", nil), + newTestMember(12762790032478827328, []string{"http://127.0.0.1:2379"}, "default", nil), }, }, } @@ -50,9 +50,8 @@ func TestClusterFromString(t *testing.T) { if c.token != "abc" { t.Errorf("#%d: token = %v, want abc", i, c.token) } - wc := newTestCluster(tt.mems) - if !reflect.DeepEqual(c.members, wc.members) { - t.Errorf("#%d: members = %+v, want %+v", i, c.members, wc.members) + if !reflect.DeepEqual(c.Members(), tt.mems) { + t.Errorf("#%d: members = %+v, want %+v", i, c.Members(), tt.mems) } } } @@ -80,41 +79,40 @@ func TestClusterFromStringBad(t *testing.T) { func TestClusterFromStore(t *testing.T) { tests := []struct { - mems []Member + mems []*Member }{ { - []Member{*newTestMember(1, nil, "node1", nil)}, + []*Member{newTestMember(1, nil, "node1", nil)}, }, { - []Member{}, + nil, }, { - []Member{ - *newTestMember(1, nil, "node1", nil), - *newTestMember(2, nil, "node2", nil), + []*Member{ + newTestMember(1, nil, "node1", nil), + newTestMember(2, nil, "node2", nil), }, }, } for i, tt := range tests { hc := newTestCluster(nil) for _, m := range tt.mems { - hc.AddMember(&m) + hc.AddMember(m) } c := NewClusterFromStore("abc", hc.store) if c.token != "abc" { t.Errorf("#%d: token = %v, want %v", i, c.token, "abc") } - wc := newTestCluster(tt.mems) - if !reflect.DeepEqual(c.members, wc.members) { - t.Errorf("#%d: members = %v, want %v", i, c.members, wc.members) + if !reflect.DeepEqual(c.Members(), tt.mems) { + t.Errorf("#%d: members = %v, want %v", i, c.Members(), tt.mems) } } } func TestClusterMember(t *testing.T) { - membs := []Member{ - *newTestMember(1, nil, "node1", nil), - *newTestMember(2, nil, "node2", nil), + membs := []*Member{ + newTestMember(1, nil, "node1", nil), + newTestMember(2, nil, "node2", nil), } tests := []struct { id types.ID @@ -137,9 +135,9 @@ func TestClusterMember(t *testing.T) { } func TestClusterMemberByName(t *testing.T) { - membs := []Member{ - *newTestMember(1, nil, "node1", nil), - *newTestMember(2, nil, "node2", nil), + membs := []*Member{ + newTestMember(1, nil, "node1", nil), + newTestMember(2, nil, "node2", nil), } tests := []struct { name string @@ -162,10 +160,10 @@ func TestClusterMemberByName(t *testing.T) { } func TestClusterMemberIDs(t *testing.T) { - c := newTestCluster([]Member{ - *newTestMember(1, nil, "", nil), - *newTestMember(4, nil, "", nil), - *newTestMember(100, nil, "", nil), + c := newTestCluster([]*Member{ + newTestMember(1, nil, "", nil), + newTestMember(4, nil, "", nil), + newTestMember(100, nil, "", nil), }) w := []types.ID{1, 4, 100} g := c.MemberIDs() @@ -176,45 +174,45 @@ func TestClusterMemberIDs(t *testing.T) { func TestClusterPeerURLs(t *testing.T) { tests := []struct { - mems []Member + mems []*Member wurls []string }{ // single peer with a single address { - mems: []Member{ - *newTestMember(1, []string{"http://192.0.2.1"}, "", nil), + mems: []*Member{ + newTestMember(1, []string{"http://192.0.2.1"}, "", nil), }, wurls: []string{"http://192.0.2.1"}, }, // single peer with a single address with a port { - mems: []Member{ - *newTestMember(1, []string{"http://192.0.2.1:8001"}, "", nil), + mems: []*Member{ + newTestMember(1, []string{"http://192.0.2.1:8001"}, "", nil), }, wurls: []string{"http://192.0.2.1:8001"}, }, // several members explicitly unsorted { - mems: []Member{ - *newTestMember(2, []string{"http://192.0.2.3", "http://192.0.2.4"}, "", nil), - *newTestMember(3, []string{"http://192.0.2.5", "http://192.0.2.6"}, "", nil), - *newTestMember(1, []string{"http://192.0.2.1", "http://192.0.2.2"}, "", nil), + mems: []*Member{ + newTestMember(2, []string{"http://192.0.2.3", "http://192.0.2.4"}, "", nil), + newTestMember(3, []string{"http://192.0.2.5", "http://192.0.2.6"}, "", nil), + newTestMember(1, []string{"http://192.0.2.1", "http://192.0.2.2"}, "", nil), }, wurls: []string{"http://192.0.2.1", "http://192.0.2.2", "http://192.0.2.3", "http://192.0.2.4", "http://192.0.2.5", "http://192.0.2.6"}, }, // no members { - mems: []Member{}, + mems: []*Member{}, wurls: []string{}, }, // peer with no peer urls { - mems: []Member{ - *newTestMember(3, []string{}, "", nil), + mems: []*Member{ + newTestMember(3, []string{}, "", nil), }, wurls: []string{}, }, @@ -231,45 +229,45 @@ func TestClusterPeerURLs(t *testing.T) { func TestClusterClientURLs(t *testing.T) { tests := []struct { - mems []Member + mems []*Member wurls []string }{ // single peer with a single address { - mems: []Member{ - *newTestMember(1, nil, "", []string{"http://192.0.2.1"}), + mems: []*Member{ + newTestMember(1, nil, "", []string{"http://192.0.2.1"}), }, wurls: []string{"http://192.0.2.1"}, }, // single peer with a single address with a port { - mems: []Member{ - *newTestMember(1, nil, "", []string{"http://192.0.2.1:8001"}), + mems: []*Member{ + newTestMember(1, nil, "", []string{"http://192.0.2.1:8001"}), }, wurls: []string{"http://192.0.2.1:8001"}, }, // several members explicitly unsorted { - mems: []Member{ - *newTestMember(2, nil, "", []string{"http://192.0.2.3", "http://192.0.2.4"}), - *newTestMember(3, nil, "", []string{"http://192.0.2.5", "http://192.0.2.6"}), - *newTestMember(1, nil, "", []string{"http://192.0.2.1", "http://192.0.2.2"}), + mems: []*Member{ + newTestMember(2, nil, "", []string{"http://192.0.2.3", "http://192.0.2.4"}), + newTestMember(3, nil, "", []string{"http://192.0.2.5", "http://192.0.2.6"}), + newTestMember(1, nil, "", []string{"http://192.0.2.1", "http://192.0.2.2"}), }, wurls: []string{"http://192.0.2.1", "http://192.0.2.2", "http://192.0.2.3", "http://192.0.2.4", "http://192.0.2.5", "http://192.0.2.6"}, }, // no members { - mems: []Member{}, + mems: []*Member{}, wurls: []string{}, }, // peer with no client urls { - mems: []Member{ - *newTestMember(3, nil, "", []string{}), + mems: []*Member{ + newTestMember(3, nil, "", []string{}), }, wurls: []string{}, }, @@ -286,20 +284,20 @@ func TestClusterClientURLs(t *testing.T) { func TestClusterValidateAndAssignIDsBad(t *testing.T) { tests := []struct { - clmembs []Member + clmembs []*Member membs []*Member }{ { // unmatched length - []Member{ - *newTestMember(1, []string{"http://127.0.0.1:2379"}, "", nil), + []*Member{ + newTestMember(1, []string{"http://127.0.0.1:2379"}, "", nil), }, []*Member{}, }, { // unmatched peer urls - []Member{ - *newTestMember(1, []string{"http://127.0.0.1:2379"}, "", nil), + []*Member{ + newTestMember(1, []string{"http://127.0.0.1:2379"}, "", nil), }, []*Member{ newTestMember(1, []string{"http://127.0.0.1:4001"}, "", nil), @@ -307,9 +305,9 @@ func TestClusterValidateAndAssignIDsBad(t *testing.T) { }, { // unmatched peer urls - []Member{ - *newTestMember(1, []string{"http://127.0.0.1:2379"}, "", nil), - *newTestMember(2, []string{"http://127.0.0.2:2379"}, "", nil), + []*Member{ + newTestMember(1, []string{"http://127.0.0.1:2379"}, "", nil), + newTestMember(2, []string{"http://127.0.0.2:2379"}, "", nil), }, []*Member{ newTestMember(1, []string{"http://127.0.0.1:2379"}, "", nil), @@ -327,14 +325,14 @@ func TestClusterValidateAndAssignIDsBad(t *testing.T) { func TestClusterValidateAndAssignIDs(t *testing.T) { tests := []struct { - clmembs []Member + clmembs []*Member membs []*Member wids []types.ID }{ { - []Member{ - *newTestMember(1, []string{"http://127.0.0.1:2379"}, "", nil), - *newTestMember(2, []string{"http://127.0.0.2:2379"}, "", nil), + []*Member{ + newTestMember(1, []string{"http://127.0.0.1:2379"}, "", nil), + newTestMember(2, []string{"http://127.0.0.2:2379"}, "", nil), }, []*Member{ newTestMember(3, []string{"http://127.0.0.1:2379"}, "", nil), @@ -426,9 +424,9 @@ func TestClusterValidateConfigurationChange(t *testing.T) { } func TestClusterGenID(t *testing.T) { - cs := newTestCluster([]Member{ - *newTestMember(1, nil, "", nil), - *newTestMember(2, nil, "", nil), + cs := newTestCluster([]*Member{ + newTestMember(1, nil, "", nil), + newTestMember(2, nil, "", nil), }) cs.genID() @@ -605,11 +603,11 @@ func TestNodeToMember(t *testing.T) { } } -func newTestCluster(membs []Member) *Cluster { +func newTestCluster(membs []*Member) *Cluster { c := &Cluster{members: make(map[types.ID]*Member), removed: make(map[types.ID]bool)} c.store = store.New() for i := range membs { - c.AddMember(&membs[i]) + c.AddMember(membs[i]) } return c } diff --git a/etcdserver/sender_test.go b/etcdserver/sender_test.go index b193c2657..25b928b7c 100644 --- a/etcdserver/sender_test.go +++ b/etcdserver/sender_test.go @@ -24,10 +24,10 @@ import ( ) func TestSendHubInitSenders(t *testing.T) { - membs := []Member{ - *newTestMember(1, []string{"http://a"}, "", nil), - *newTestMember(2, []string{"http://b"}, "", nil), - *newTestMember(3, []string{"http://c"}, "", nil), + membs := []*Member{ + newTestMember(1, []string{"http://a"}, "", nil), + newTestMember(2, []string{"http://b"}, "", nil), + newTestMember(3, []string{"http://c"}, "", nil), } cl := newTestCluster(membs) ls := stats.NewLeaderStats("") @@ -70,8 +70,8 @@ func TestSendHubAdd(t *testing.T) { } func TestSendHubRemove(t *testing.T) { - membs := []Member{ - *newTestMember(1, []string{"http://a"}, "", nil), + membs := []*Member{ + newTestMember(1, []string{"http://a"}, "", nil), } cl := newTestCluster(membs) ls := stats.NewLeaderStats("") diff --git a/etcdserver/server_test.go b/etcdserver/server_test.go index 965791746..5361b264e 100644 --- a/etcdserver/server_test.go +++ b/etcdserver/server_test.go @@ -407,7 +407,7 @@ func TestApplyRequest(t *testing.T) { } func TestApplyRequestOnAdminMemberAttributes(t *testing.T) { - cl := newTestCluster([]Member{{ID: 1}}) + cl := newTestCluster([]*Member{{ID: 1}}) srv := &EtcdServer{ store: &storeRecorder{}, Cluster: cl, @@ -992,7 +992,7 @@ func TestRemoveMember(t *testing.T) { Nodes: []uint64{1234, 2345, 3456}, }, } - cl := newTestCluster([]Member{{ID: 1234}}) + cl := newTestCluster([]*Member{{ID: 1234}}) s := &EtcdServer{ node: n, store: &storeRecorder{},