lint: errcheck (#5091)

## Description

add more error checks to tests


gonna do a third PR that tackles the non test cases
This commit is contained in:
Marko
2020-07-14 11:04:41 +00:00
committed by GitHub
parent 0825d57cf7
commit 6ccccb0933
32 changed files with 773 additions and 229 deletions
+26 -5
View File
@@ -437,8 +437,6 @@ func expectSend(ch chan struct{}) bool {
func TestMConnectionReadErrorBadEncoding(t *testing.T) {
chOnErr := make(chan struct{})
mconnClient, mconnServer := newClientAndServerConnsForReadErrors(t, chOnErr)
defer mconnClient.Stop() // nolint:errcheck // ignore for tests
defer mconnServer.Stop() // nolint:errcheck // ignore for tests
client := mconnClient.conn
@@ -446,13 +444,23 @@ func TestMConnectionReadErrorBadEncoding(t *testing.T) {
_, err := client.Write([]byte{1, 2, 3, 4, 5})
require.NoError(t, err)
assert.True(t, expectSend(chOnErr), "badly encoded msgPacket")
t.Cleanup(func() {
if err := mconnClient.Stop(); err != nil {
t.Log(err)
}
})
t.Cleanup(func() {
if err := mconnServer.Stop(); err != nil {
t.Log(err)
}
})
}
func TestMConnectionReadErrorUnknownChannel(t *testing.T) {
chOnErr := make(chan struct{})
mconnClient, mconnServer := newClientAndServerConnsForReadErrors(t, chOnErr)
defer mconnClient.Stop()
defer mconnServer.Stop()
msg := []byte("Ant-Man")
@@ -463,6 +471,18 @@ func TestMConnectionReadErrorUnknownChannel(t *testing.T) {
// should cause an error
assert.True(t, mconnClient.Send(0x02, msg))
assert.True(t, expectSend(chOnErr), "unknown channel")
t.Cleanup(func() {
if err := mconnClient.Stop(); err != nil {
t.Log(err)
}
})
t.Cleanup(func() {
if err := mconnServer.Stop(); err != nil {
t.Log(err)
}
})
}
func TestMConnectionReadErrorLongMessage(t *testing.T) {
@@ -528,7 +548,8 @@ func TestMConnectionTrySend(t *testing.T) {
msg := []byte("Semicolon-Woman")
resultCh := make(chan string, 2)
assert.True(t, mconn.TrySend(0x01, msg))
server.Read(make([]byte, len(msg)))
_, err = server.Read(make([]byte, len(msg)))
require.NoError(t, err)
assert.True(t, mconn.CanSend(0x01))
assert.True(t, mconn.TrySend(0x01, msg))
assert.False(t, mconn.CanSend(0x01))
+4 -3
View File
@@ -228,7 +228,8 @@ func TestDeriveSecretsAndChallengeGolden(t *testing.T) {
if *update {
t.Logf("Updating golden test vector file %s", goldenFilepath)
data := createGoldenTestVectors(t)
tmos.WriteFile(goldenFilepath, []byte(data), 0644)
err := tmos.WriteFile(goldenFilepath, []byte(data), 0644)
require.NoError(t, err)
}
f, err := os.Open(goldenFilepath)
if err != nil {
@@ -263,7 +264,7 @@ func TestNilPubkey(t *testing.T) {
var fooPrvKey = ed25519.GenPrivKey()
var barPrvKey = privKeyWithNilPubKey{ed25519.GenPrivKey()}
go MakeSecretConnection(fooConn, fooPrvKey)
go MakeSecretConnection(fooConn, fooPrvKey) //nolint:errcheck // ignore for tests
_, err := MakeSecretConnection(barConn, barPrvKey)
require.Error(t, err)
@@ -277,7 +278,7 @@ func TestNonEd25519Pubkey(t *testing.T) {
var fooPrvKey = ed25519.GenPrivKey()
var barPrvKey = secp256k1.GenPrivKey()
go MakeSecretConnection(fooConn, fooPrvKey)
go MakeSecretConnection(fooConn, fooPrvKey) //nolint:errcheck // ignore for tests
_, err := MakeSecretConnection(barConn, barPrvKey)
require.Error(t, err)
+3 -1
View File
@@ -200,7 +200,9 @@ func (p *peer) FlushStop() {
func (p *peer) OnStop() {
p.metricsTicker.Stop()
p.BaseService.OnStop()
p.mconn.Stop() // stop everything and close the conn
if err := p.mconn.Stop(); err != nil { // stop everything and close the conn
p.Logger.Error("Error while stopping peer", "err", err)
}
}
//---------------------------------------------------
+36 -18
View File
@@ -35,7 +35,8 @@ func TestAddrBookPickAddress(t *testing.T) {
randAddrs := randNetAddressPairs(t, 1)
addrSrc := randAddrs[0]
book.AddAddress(addrSrc.addr, addrSrc.src)
err := book.AddAddress(addrSrc.addr, addrSrc.src)
require.NoError(t, err)
// pick an address when we only have new address
addr = book.PickAddress(0)
@@ -68,7 +69,8 @@ func TestAddrBookSaveLoad(t *testing.T) {
book = NewAddrBook(fname, true)
book.SetLogger(log.TestingLogger())
book.Start()
err := book.Start()
require.NoError(t, err)
assert.True(t, book.Empty())
@@ -76,7 +78,8 @@ func TestAddrBookSaveLoad(t *testing.T) {
randAddrs := randNetAddressPairs(t, 100)
for _, addrSrc := range randAddrs {
book.AddAddress(addrSrc.addr, addrSrc.src)
err := book.AddAddress(addrSrc.addr, addrSrc.src)
require.NoError(t, err)
}
assert.Equal(t, 100, book.Size())
@@ -84,7 +87,8 @@ func TestAddrBookSaveLoad(t *testing.T) {
book = NewAddrBook(fname, true)
book.SetLogger(log.TestingLogger())
book.Start()
err = book.Start()
require.NoError(t, err)
assert.Equal(t, 100, book.Size())
}
@@ -100,7 +104,8 @@ func TestAddrBookLookup(t *testing.T) {
for _, addrSrc := range randAddrs {
addr := addrSrc.addr
src := addrSrc.src
book.AddAddress(addr, src)
err := book.AddAddress(addr, src)
require.NoError(t, err)
ka := book.HasAddress(addr)
assert.True(t, ka, "Expected to find KnownAddress %v but wasn't there.", addr)
@@ -116,7 +121,8 @@ func TestAddrBookPromoteToOld(t *testing.T) {
book := NewAddrBook(fname, true)
book.SetLogger(log.TestingLogger())
for _, addrSrc := range randAddrs {
book.AddAddress(addrSrc.addr, addrSrc.src)
err := book.AddAddress(addrSrc.addr, addrSrc.src)
require.NoError(t, err)
}
// Attempt all addresses.
@@ -161,9 +167,12 @@ func TestAddrBookHandlesDuplicates(t *testing.T) {
differentSrc := randIPv4Address(t)
for _, addrSrc := range randAddrs {
book.AddAddress(addrSrc.addr, addrSrc.src)
book.AddAddress(addrSrc.addr, addrSrc.src) // duplicate
book.AddAddress(addrSrc.addr, differentSrc) // different src
err := book.AddAddress(addrSrc.addr, addrSrc.src)
require.NoError(t, err)
err = book.AddAddress(addrSrc.addr, addrSrc.src) // duplicate
require.NoError(t, err)
err = book.AddAddress(addrSrc.addr, differentSrc) // different src
require.NoError(t, err)
}
assert.Equal(t, 100, book.Size())
@@ -209,7 +218,8 @@ func TestAddrBookRemoveAddress(t *testing.T) {
book.SetLogger(log.TestingLogger())
addr := randIPv4Address(t)
book.AddAddress(addr, addr)
err := book.AddAddress(addr, addr)
require.NoError(t, err)
assert.Equal(t, 1, book.Size())
book.RemoveAddress(addr)
@@ -260,7 +270,8 @@ func TestAddrBookGetSelection(t *testing.T) {
// 2) add one address
addr := randIPv4Address(t)
book.AddAddress(addr, addr)
err := book.AddAddress(addr, addr)
require.NoError(t, err)
assert.Equal(t, 1, len(book.GetSelection()))
assert.Equal(t, addr, book.GetSelection()[0])
@@ -268,7 +279,8 @@ func TestAddrBookGetSelection(t *testing.T) {
// 3) add a bunch of addresses
randAddrs := randNetAddressPairs(t, 100)
for _, addrSrc := range randAddrs {
book.AddAddress(addrSrc.addr, addrSrc.src)
err := book.AddAddress(addrSrc.addr, addrSrc.src)
require.NoError(t, err)
}
// check there is no duplicates
@@ -301,7 +313,8 @@ func TestAddrBookGetSelectionWithBias(t *testing.T) {
// 2) add one address
addr := randIPv4Address(t)
book.AddAddress(addr, addr)
err := book.AddAddress(addr, addr)
require.NoError(t, err)
selection = book.GetSelectionWithBias(biasTowardsNewAddrs)
assert.Equal(t, 1, len(selection))
@@ -310,7 +323,8 @@ func TestAddrBookGetSelectionWithBias(t *testing.T) {
// 3) add a bunch of addresses
randAddrs := randNetAddressPairs(t, 100)
for _, addrSrc := range randAddrs {
book.AddAddress(addrSrc.addr, addrSrc.src)
err := book.AddAddress(addrSrc.addr, addrSrc.src)
require.NoError(t, err)
}
// check there is no duplicates
@@ -376,7 +390,8 @@ func TestAddrBookHasAddress(t *testing.T) {
book := NewAddrBook(fname, true)
book.SetLogger(log.TestingLogger())
addr := randIPv4Address(t)
book.AddAddress(addr, addr)
err := book.AddAddress(addr, addr)
require.NoError(t, err)
assert.True(t, book.HasAddress(addr))
@@ -442,7 +457,8 @@ func TestAddrBookEmpty(t *testing.T) {
require.True(t, book.Empty())
// Check that book with address is not empty
book.AddAddress(randIPv4Address(t), randIPv4Address(t))
err := book.AddAddress(randIPv4Address(t), randIPv4Address(t))
require.NoError(t, err)
require.False(t, book.Empty())
}
@@ -675,13 +691,15 @@ func createAddrBookWithMOldAndNNewAddrs(t *testing.T, nOld, nNew int) (book *add
randAddrs := randNetAddressPairs(t, nOld)
for _, addr := range randAddrs {
book.AddAddress(addr.addr, addr.src)
err := book.AddAddress(addr.addr, addr.src)
require.NoError(t, err)
book.MarkGood(addr.addr.ID)
}
randAddrs = randNetAddressPairs(t, nNew)
for _, addr := range randAddrs {
book.AddAddress(addr.addr, addr.src)
err := book.AddAddress(addr.addr, addr.src)
require.NoError(t, err)
}
return
+80 -17
View File
@@ -117,8 +117,16 @@ func initSwitchFunc(i int, sw *Switch) *Switch {
func TestSwitches(t *testing.T) {
s1, s2 := MakeSwitchPair(t, initSwitchFunc)
defer s1.Stop()
defer s2.Stop()
t.Cleanup(func() {
if err := s1.Stop(); err != nil {
t.Error(err)
}
})
t.Cleanup(func() {
if err := s2.Stop(); err != nil {
t.Error(err)
}
})
if s1.Peers().Size() != 1 {
t.Errorf("expected exactly 1 peer in s1, got %v", s1.Peers().Size())
@@ -219,12 +227,17 @@ func TestSwitchPeerFilter(t *testing.T) {
SwitchPeerFilters(filters...),
)
)
defer sw.Stop()
sw.Start()
t.Cleanup(func() {
if err := sw.Stop(); err != nil {
t.Error(err)
}
})
// simulate remote peer
rp := &remotePeer{PrivKey: ed25519.GenPrivKey(), Config: cfg}
rp.Start()
defer rp.Stop()
t.Cleanup(rp.Stop)
p, err := sw.transport.Dial(*rp.Addr(), peerConfig{
chDescs: sw.chDescs,
@@ -264,7 +277,12 @@ func TestSwitchPeerFilterTimeout(t *testing.T) {
SwitchPeerFilters(filters...),
)
)
defer sw.Stop()
sw.Start()
t.Cleanup(func() {
if err := sw.Stop(); err != nil {
t.Log(err)
}
})
// simulate remote peer
rp := &remotePeer{PrivKey: ed25519.GenPrivKey(), Config: cfg}
@@ -289,8 +307,13 @@ func TestSwitchPeerFilterTimeout(t *testing.T) {
func TestSwitchPeerFilterDuplicate(t *testing.T) {
sw := MakeSwitch(cfg, 1, "testing", "123.123.123", initSwitchFunc)
sw.Start()
defer sw.Stop()
err := sw.Start()
require.NoError(t, err)
t.Cleanup(func() {
if err := sw.Stop(); err != nil {
t.Error(err)
}
})
// simulate remote peer
rp := &remotePeer{PrivKey: ed25519.GenPrivKey(), Config: cfg}
@@ -336,7 +359,11 @@ func TestSwitchStopsNonPersistentPeerOnError(t *testing.T) {
if err != nil {
t.Error(err)
}
defer sw.Stop()
t.Cleanup(func() {
if err := sw.Stop(); err != nil {
t.Error(err)
}
})
// simulate remote peer
rp := &remotePeer{PrivKey: ed25519.GenPrivKey(), Config: cfg}
@@ -404,7 +431,11 @@ func TestSwitchStopPeerForError(t *testing.T) {
// stop sw2. this should cause the p to fail,
// which results in calling StopPeerForError internally
sw2.Stop()
t.Cleanup(func() {
if err := sw2.Stop(); err != nil {
t.Error(err)
}
})
// now call StopPeerForError explicitly, eg. from a reactor
sw1.StopPeerForError(p, fmt.Errorf("some err"))
@@ -417,7 +448,11 @@ func TestSwitchReconnectsToOutboundPersistentPeer(t *testing.T) {
sw := MakeSwitch(cfg, 1, "testing", "123.123.123", initSwitchFunc)
err := sw.Start()
require.NoError(t, err)
defer sw.Stop()
t.Cleanup(func() {
if err := sw.Stop(); err != nil {
t.Error(err)
}
})
// 1. simulate failure by closing connection
rp := &remotePeer{PrivKey: ed25519.GenPrivKey(), Config: cfg}
@@ -462,7 +497,11 @@ func TestSwitchReconnectsToInboundPersistentPeer(t *testing.T) {
sw := MakeSwitch(cfg, 1, "testing", "123.123.123", initSwitchFunc)
err := sw.Start()
require.NoError(t, err)
defer sw.Stop()
t.Cleanup(func() {
if err := sw.Stop(); err != nil {
t.Error(err)
}
})
// 1. simulate failure by closing the connection
rp := &remotePeer{PrivKey: ed25519.GenPrivKey(), Config: cfg}
@@ -491,7 +530,11 @@ func TestSwitchDialPeersAsync(t *testing.T) {
sw := MakeSwitch(cfg, 1, "testing", "123.123.123", initSwitchFunc)
err := sw.Start()
require.NoError(t, err)
defer sw.Stop()
t.Cleanup(func() {
if err := sw.Stop(); err != nil {
t.Error(err)
}
})
rp := &remotePeer{PrivKey: ed25519.GenPrivKey(), Config: cfg}
rp.Start()
@@ -517,7 +560,12 @@ func TestSwitchFullConnectivity(t *testing.T) {
switches := MakeConnectedSwitches(cfg, 3, initSwitchFunc, Connect2Switches)
defer func() {
for _, sw := range switches {
sw.Stop()
sw := sw
t.Cleanup(func() {
if err := sw.Stop(); err != nil {
t.Error(err)
}
})
}
}()
@@ -549,7 +597,11 @@ func TestSwitchAcceptRoutine(t *testing.T) {
sw.AddUnconditionalPeerIDs(unconditionalPeerIDs)
err := sw.Start()
require.NoError(t, err)
defer sw.Stop()
t.Cleanup(func() {
if err := sw.Stop(); err != nil {
t.Error(err)
}
})
// 0. check there are no peers
assert.Equal(t, 0, sw.Peers().Size())
@@ -653,7 +705,8 @@ func TestSwitchAcceptRoutineErrorCases(t *testing.T) {
assert.NotPanics(t, func() {
err := sw.Start()
assert.NoError(t, err)
sw.Stop()
err = sw.Stop()
require.NoError(t, err)
})
}
@@ -739,8 +792,18 @@ func BenchmarkSwitchBroadcast(b *testing.B) {
}, false))
return sw
})
defer s1.Stop()
defer s2.Stop()
b.Cleanup(func() {
if err := s1.Stop(); err != nil {
b.Error(err)
}
})
b.Cleanup(func() {
if err := s2.Stop(); err != nil {
b.Error(err)
}
})
// Allow time for goroutines to boot up
time.Sleep(1 * time.Second)
+17 -8
View File
@@ -5,11 +5,13 @@ import (
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestTrustMetricScores(t *testing.T) {
tm := NewMetric()
tm.Start()
err := tm.Start()
require.NoError(t, err)
// Perfect score
tm.GoodEvents(1)
@@ -20,7 +22,8 @@ func TestTrustMetricScores(t *testing.T) {
tm.BadEvents(10)
score = tm.TrustScore()
assert.NotEqual(t, 100, score)
tm.Stop()
err = tm.Stop()
require.NoError(t, err)
}
func TestTrustMetricConfig(t *testing.T) {
@@ -32,7 +35,8 @@ func TestTrustMetricConfig(t *testing.T) {
}
tm := NewMetricWithConfig(config)
tm.Start()
err := tm.Start()
require.NoError(t, err)
// The max time intervals should be the TrackingWindow / IntervalLen
assert.Equal(t, int(config.TrackingWindow/config.IntervalLength), tm.maxIntervals)
@@ -41,18 +45,21 @@ func TestTrustMetricConfig(t *testing.T) {
// These weights should still be the default values
assert.Equal(t, dc.ProportionalWeight, tm.proportionalWeight)
assert.Equal(t, dc.IntegralWeight, tm.integralWeight)
tm.Stop()
err = tm.Stop()
require.NoError(t, err)
tm.Wait()
config.ProportionalWeight = 0.3
config.IntegralWeight = 0.7
tm = NewMetricWithConfig(config)
tm.Start()
err = tm.Start()
require.NoError(t, err)
// These weights should be equal to our custom values
assert.Equal(t, config.ProportionalWeight, tm.proportionalWeight)
assert.Equal(t, config.IntegralWeight, tm.integralWeight)
tm.Stop()
err = tm.Stop()
require.NoError(t, err)
tm.Wait()
}
@@ -72,7 +79,8 @@ func _TestTrustMetricStopPause(t *testing.T) {
tt := NewTestTicker()
tm := NewMetric()
tm.SetTicker(tt)
tm.Start()
err := tm.Start()
require.NoError(t, err)
// Allow some time intervals to pass and pause
tt.NextTick()
tt.NextTick()
@@ -91,7 +99,8 @@ func _TestTrustMetricStopPause(t *testing.T) {
// Allow some time intervals to pass and stop
tt.NextTick()
tt.NextTick()
tm.Stop()
err = tm.Stop()
require.NoError(t, err)
tm.Wait()
second := tm.Copy().numIntervals
+22 -11
View File
@@ -31,7 +31,8 @@ func TestTrustMetricStoreSaveLoad(t *testing.T) {
// Load the data from the file
store = NewTrustMetricStore(historyDB, DefaultConfig())
store.SetLogger(log.TestingLogger())
store.Start()
err = store.Start()
require.NoError(t, err)
// Make sure we still have 0 entries
assert.Zero(t, store.Size())
@@ -48,7 +49,8 @@ func TestTrustMetricStoreSaveLoad(t *testing.T) {
tm := NewMetric()
tm.SetTicker(tt[i])
tm.Start()
err = tm.Start()
require.NoError(t, err)
store.AddPeerTrustMetric(key, tm)
tm.BadEvents(10)
@@ -62,12 +64,14 @@ func TestTrustMetricStoreSaveLoad(t *testing.T) {
tt[i].NextTick()
}
// Stop all the trust metrics and save
store.Stop()
err = store.Stop()
require.NoError(t, err)
// Load the data from the DB
store = NewTrustMetricStore(historyDB, DefaultConfig())
store.SetLogger(log.TestingLogger())
store.Start()
err = store.Start()
require.NoError(t, err)
// Check that we still have 100 peers with imperfect trust values
assert.Equal(t, 100, store.Size())
@@ -75,7 +79,8 @@ func TestTrustMetricStoreSaveLoad(t *testing.T) {
assert.NotEqual(t, 1.0, tm.TrustValue())
}
store.Stop()
err = store.Stop()
require.NoError(t, err)
}
func TestTrustMetricStoreConfig(t *testing.T) {
@@ -90,7 +95,8 @@ func TestTrustMetricStoreConfig(t *testing.T) {
// Create a store with custom config
store := NewTrustMetricStore(historyDB, config)
store.SetLogger(log.TestingLogger())
store.Start()
err = store.Start()
require.NoError(t, err)
// Have the store make us a metric with the config
tm := store.GetPeerTrustMetric("TestKey")
@@ -98,7 +104,8 @@ func TestTrustMetricStoreConfig(t *testing.T) {
// Check that the options made it to the metric
assert.Equal(t, 0.5, tm.proportionalWeight)
assert.Equal(t, 0.5, tm.integralWeight)
store.Stop()
err = store.Stop()
require.NoError(t, err)
}
func TestTrustMetricStoreLookup(t *testing.T) {
@@ -107,7 +114,8 @@ func TestTrustMetricStoreLookup(t *testing.T) {
store := NewTrustMetricStore(historyDB, DefaultConfig())
store.SetLogger(log.TestingLogger())
store.Start()
err = store.Start()
require.NoError(t, err)
// Create 100 peers in the trust metric store
for i := 0; i < 100; i++ {
@@ -119,7 +127,8 @@ func TestTrustMetricStoreLookup(t *testing.T) {
assert.NotNil(t, ktm, "Expected to find TrustMetric %s but wasn't there.", key)
}
store.Stop()
err = store.Stop()
require.NoError(t, err)
}
func TestTrustMetricStorePeerScore(t *testing.T) {
@@ -128,7 +137,8 @@ func TestTrustMetricStorePeerScore(t *testing.T) {
store := NewTrustMetricStore(historyDB, DefaultConfig())
store.SetLogger(log.TestingLogger())
store.Start()
err = store.Start()
require.NoError(t, err)
key := "TestKey"
tm := store.GetPeerTrustMetric(key)
@@ -152,5 +162,6 @@ func TestTrustMetricStorePeerScore(t *testing.T) {
// We will remember our experiences with this peer
tm = store.GetPeerTrustMetric(key)
assert.NotEqual(t, 100, tm.TrustScore())
store.Stop()
err = store.Stop()
require.NoError(t, err)
}