From ff56da77456561d72ca22b5f22b7f1c067d2d92e Mon Sep 17 00:00:00 2001 From: Austin Benoit <22805659+AustinBenoit@users.noreply.github.com> Date: Thu, 28 Jul 2022 18:14:39 -0400 Subject: [PATCH] rafthttp: test transport multiple transport removes Unit test to verify multiple transport removes does not create an issue. Signed-off-by: Austin Benoit <22805659+AustinBenoit@users.noreply.github.com> --- .../etcdserver/api/rafthttp/transport_test.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/server/etcdserver/api/rafthttp/transport_test.go b/server/etcdserver/api/rafthttp/transport_test.go index dd942bf8fbd..fb520d1eeef 100644 --- a/server/etcdserver/api/rafthttp/transport_test.go +++ b/server/etcdserver/api/rafthttp/transport_test.go @@ -142,6 +142,25 @@ func TestTransportRemove(t *testing.T) { } } +func TestTransportRemoveIsIdempotent(t *testing.T) { + tr := &Transport{ + LeaderStats: stats.NewLeaderStats(zaptest.NewLogger(t), ""), + streamRt: &roundTripperRecorder{}, + peers: make(map[types.ID]Peer), + pipelineProber: probing.NewProber(nil), + streamProber: probing.NewProber(nil), + } + + tr.AddPeer(1, []string{"http://localhost:2380"}) + tr.RemovePeer(types.ID(1)) + tr.RemovePeer(types.ID(1)) + defer tr.Stop() + + if _, ok := tr.peers[types.ID(1)]; ok { + t.Fatalf("senders[1] exists, want removed") + } +} + func TestTransportUpdate(t *testing.T) { peer := newFakePeer() tr := &Transport{