From a3d32068d2889d37286e0434a14a426ca34b5cf1 Mon Sep 17 00:00:00 2001 From: Tom Wilkie Date: Fri, 17 Jul 2015 13:01:42 +0000 Subject: [PATCH] Correctly stop the test gossip router to prevent complaints of data races in subsequent tests. --- nameserver/nameserver_test.go | 5 +++-- testing/gossip/mocks.go | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/nameserver/nameserver_test.go b/nameserver/nameserver_test.go index 442f91a6..f0a71ba0 100644 --- a/nameserver/nameserver_test.go +++ b/nameserver/nameserver_test.go @@ -31,10 +31,11 @@ func makeNetwork(size int) ([]*Nameserver, *gossip.TestRouter) { return nameservers, gossipRouter } -func stopNetwork(nameservers []*Nameserver) { +func stopNetwork(nameservers []*Nameserver, grouter *gossip.TestRouter) { for _, nameserver := range nameservers { nameserver.Stop() } + grouter.Stop() } type pair struct { @@ -74,7 +75,7 @@ func TestNameservers(t *testing.T) { lookupTimeout := 20 // ms nameservers, grouter := makeNetwork(50) - defer stopNetwork(nameservers) + defer stopNetwork(nameservers, grouter) nameserversByName := map[router.PeerName]*Nameserver{} for _, n := range nameservers { nameserversByName[n.ourName] = n diff --git a/testing/gossip/mocks.go b/testing/gossip/mocks.go index 34e65059..95f7d976 100644 --- a/testing/gossip/mocks.go +++ b/testing/gossip/mocks.go @@ -34,6 +34,12 @@ func NewTestRouter(loss float32) *TestRouter { return &TestRouter{make(map[router.PeerName]chan interface{}, 100), loss} } +func (grouter *TestRouter) Stop() { + for peer := range grouter.gossipChans { + grouter.RemovePeer(peer) + } +} + func (grouter *TestRouter) gossipBroadcast(sender router.PeerName, update router.GossipData) error { for _, gossipChan := range grouter.gossipChans { select {