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 13:04:41 +02:00
committed by GitHub
parent 0825d57cf7
commit 6ccccb0933
32 changed files with 773 additions and 229 deletions

View File

@@ -22,7 +22,9 @@ func TestSIGHUP(t *testing.T) {
// First, create a temporary directory and move into it
dir, err := ioutil.TempDir("", "sighup_test")
require.NoError(t, err)
defer os.RemoveAll(dir)
t.Cleanup(func() {
os.RemoveAll(dir)
})
err = os.Chdir(dir)
require.NoError(t, err)
@@ -50,7 +52,8 @@ func TestSIGHUP(t *testing.T) {
require.NoError(t, err)
// Send SIGHUP to self.
syscall.Kill(syscall.Getpid(), syscall.SIGHUP)
err = syscall.Kill(syscall.Getpid(), syscall.SIGHUP)
require.NoError(t, err)
// Wait a bit... signals are not handled synchronously.
time.Sleep(time.Millisecond * 10)

View File

@@ -59,8 +59,7 @@ func main() {
os.Exit(1)
}
err = group.Start()
if err != nil {
if err = group.Start(); err != nil {
fmt.Printf("logjack couldn't start with file %v\n", headPath)
os.Exit(1)
}
@@ -69,10 +68,11 @@ func main() {
buf := make([]byte, readBufferSize)
for {
n, err := os.Stdin.Read(buf)
group.Write(buf[:n])
group.FlushAndSync()
if err != nil {
group.Stop()
if err := group.Stop(); err != nil {
fmt.Fprintf(os.Stderr, "logjack stopped with error %v\n", headPath)
os.Exit(1)
}
if err == io.EOF {
os.Exit(0)
} else {
@@ -80,6 +80,15 @@ func main() {
os.Exit(1)
}
}
_, err = group.Write(buf[:n])
if err != nil {
fmt.Fprintf(os.Stderr, "logjack failed write with error %v\n", headPath)
os.Exit(1)
}
if err := group.FlushAndSync(); err != nil {
fmt.Fprintf(os.Stderr, "logjack flushsync fail with error %v\n", headPath)
os.Exit(1)
}
}
}

View File

@@ -53,7 +53,8 @@ func TestCheckHeadSizeLimit(t *testing.T) {
err := g.WriteLine(tmrand.Str(999))
require.NoError(t, err, "Error appending to head")
}
g.FlushAndSync()
err := g.FlushAndSync()
require.NoError(t, err)
assertGroupInfo(t, g.ReadGroupInfo(), 0, 0, 999000, 999000)
// Even calling checkHeadSizeLimit manually won't rotate it.
@@ -61,9 +62,10 @@ func TestCheckHeadSizeLimit(t *testing.T) {
assertGroupInfo(t, g.ReadGroupInfo(), 0, 0, 999000, 999000)
// Write 1000 more bytes.
err := g.WriteLine(tmrand.Str(999))
err = g.WriteLine(tmrand.Str(999))
require.NoError(t, err, "Error appending to head")
g.FlushAndSync()
err = g.FlushAndSync()
require.NoError(t, err)
// Calling checkHeadSizeLimit this time rolls it.
g.checkHeadSizeLimit()
@@ -72,7 +74,8 @@ func TestCheckHeadSizeLimit(t *testing.T) {
// Write 1000 more bytes.
err = g.WriteLine(tmrand.Str(999))
require.NoError(t, err, "Error appending to head")
g.FlushAndSync()
err = g.FlushAndSync()
require.NoError(t, err)
// Calling checkHeadSizeLimit does nothing.
g.checkHeadSizeLimit()
@@ -83,7 +86,8 @@ func TestCheckHeadSizeLimit(t *testing.T) {
err = g.WriteLine(tmrand.Str(999))
require.NoError(t, err, "Error appending to head")
}
g.FlushAndSync()
err = g.FlushAndSync()
require.NoError(t, err)
assertGroupInfo(t, g.ReadGroupInfo(), 0, 1, 2000000, 1000000)
// Calling checkHeadSizeLimit rolls it again.
@@ -93,7 +97,8 @@ func TestCheckHeadSizeLimit(t *testing.T) {
// Write 1000 more bytes.
_, err = g.Head.Write([]byte(tmrand.Str(999) + "\n"))
require.NoError(t, err, "Error appending to head")
g.FlushAndSync()
err = g.FlushAndSync()
require.NoError(t, err)
assertGroupInfo(t, g.ReadGroupInfo(), 0, 2, 2001000, 1000)
// Calling checkHeadSizeLimit does nothing.
@@ -111,7 +116,11 @@ func TestRotateFile(t *testing.T) {
// relative paths are resolved at Group creation
origDir, err := os.Getwd()
require.NoError(t, err)
defer os.Chdir(origDir)
defer func() {
if err := os.Chdir(origDir); err != nil {
t.Error(err)
}
}()
dir, err := ioutil.TempDir("", "rotate_test")
require.NoError(t, err)
@@ -123,15 +132,23 @@ func TestRotateFile(t *testing.T) {
require.True(t, filepath.IsAbs(g.Dir))
// Create and rotate files
g.WriteLine("Line 1")
g.WriteLine("Line 2")
g.WriteLine("Line 3")
g.FlushAndSync()
err = g.WriteLine("Line 1")
require.NoError(t, err)
err = g.WriteLine("Line 2")
require.NoError(t, err)
err = g.WriteLine("Line 3")
require.NoError(t, err)
err = g.FlushAndSync()
require.NoError(t, err)
g.RotateFile()
g.WriteLine("Line 4")
g.WriteLine("Line 5")
g.WriteLine("Line 6")
g.FlushAndSync()
err = g.WriteLine("Line 4")
require.NoError(t, err)
err = g.WriteLine("Line 5")
require.NoError(t, err)
err = g.WriteLine("Line 6")
require.NoError(t, err)
err = g.FlushAndSync()
require.NoError(t, err)
// Read g.Head.Path+"000"
body1, err := ioutil.ReadFile(g.Head.Path + ".000")
@@ -160,8 +177,10 @@ func TestWrite(t *testing.T) {
g := createTestGroupWithHeadSizeLimit(t, 0)
written := []byte("Medusa")
g.Write(written)
g.FlushAndSync()
_, err := g.Write(written)
require.NoError(t, err)
err = g.FlushAndSync()
require.NoError(t, err)
read := make([]byte, len(written))
gr, err := g.NewReader(0)
@@ -181,12 +200,16 @@ func TestGroupReaderRead(t *testing.T) {
g := createTestGroupWithHeadSizeLimit(t, 0)
professor := []byte("Professor Monster")
g.Write(professor)
g.FlushAndSync()
_, err := g.Write(professor)
require.NoError(t, err)
err = g.FlushAndSync()
require.NoError(t, err)
g.RotateFile()
frankenstein := []byte("Frankenstein's Monster")
g.Write(frankenstein)
g.FlushAndSync()
_, err = g.Write(frankenstein)
require.NoError(t, err)
err = g.FlushAndSync()
require.NoError(t, err)
totalWrittenLength := len(professor) + len(frankenstein)
read := make([]byte, totalWrittenLength)
@@ -210,13 +233,17 @@ func TestGroupReaderRead2(t *testing.T) {
g := createTestGroupWithHeadSizeLimit(t, 0)
professor := []byte("Professor Monster")
g.Write(professor)
g.FlushAndSync()
_, err := g.Write(professor)
require.NoError(t, err)
err = g.FlushAndSync()
require.NoError(t, err)
g.RotateFile()
frankenstein := []byte("Frankenstein's Monster")
frankensteinPart := []byte("Frankenstein")
g.Write(frankensteinPart) // note writing only a part
g.FlushAndSync()
_, err = g.Write(frankensteinPart) // note writing only a part
require.NoError(t, err)
err = g.FlushAndSync()
require.NoError(t, err)
totalLength := len(professor) + len(frankenstein)
read := make([]byte, totalLength)
@@ -251,8 +278,10 @@ func TestMaxIndex(t *testing.T) {
assert.Zero(t, g.MaxIndex(), "MaxIndex should be zero at the beginning")
g.WriteLine("Line 1")
g.FlushAndSync()
err := g.WriteLine("Line 1")
require.NoError(t, err)
err = g.FlushAndSync()
require.NoError(t, err)
g.RotateFile()
assert.Equal(t, 1, g.MaxIndex(), "MaxIndex should point to the last file")

View File

@@ -17,7 +17,11 @@ func TestAddListenerForEventFireOnce(t *testing.T) {
evsw := NewEventSwitch()
err := evsw.Start()
require.NoError(t, err)
defer evsw.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := evsw.Stop(); err != nil {
t.Error(err)
}
})
messages := make(chan EventData)
err = evsw.AddListenerForEvent("listener", "event",
@@ -40,7 +44,11 @@ func TestAddListenerForEventFireMany(t *testing.T) {
evsw := NewEventSwitch()
err := evsw.Start()
require.NoError(t, err)
defer evsw.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := evsw.Stop(); err != nil {
t.Error(err)
}
})
doneSum := make(chan uint64)
doneSending := make(chan uint64)
@@ -70,7 +78,11 @@ func TestAddListenerForDifferentEvents(t *testing.T) {
evsw := NewEventSwitch()
err := evsw.Start()
require.NoError(t, err)
defer evsw.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := evsw.Stop(); err != nil {
t.Error(err)
}
})
doneSum := make(chan uint64)
doneSending1 := make(chan uint64)
@@ -118,7 +130,12 @@ func TestAddDifferentListenerForDifferentEvents(t *testing.T) {
evsw := NewEventSwitch()
err := evsw.Start()
require.NoError(t, err)
defer evsw.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := evsw.Stop(); err != nil {
t.Error(err)
}
})
doneSum1 := make(chan uint64)
doneSum2 := make(chan uint64)
@@ -185,7 +202,11 @@ func TestAddAndRemoveListenerConcurrency(t *testing.T) {
evsw := NewEventSwitch()
err := evsw.Start()
require.NoError(t, err)
defer evsw.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := evsw.Stop(); err != nil {
t.Error(err)
}
})
done1 := make(chan struct{})
done2 := make(chan struct{})
@@ -231,7 +252,11 @@ func TestAddAndRemoveListener(t *testing.T) {
evsw := NewEventSwitch()
err := evsw.Start()
require.NoError(t, err)
defer evsw.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := evsw.Stop(); err != nil {
t.Error(err)
}
})
doneSum1 := make(chan uint64)
doneSum2 := make(chan uint64)
@@ -278,7 +303,11 @@ func TestRemoveListener(t *testing.T) {
evsw := NewEventSwitch()
err := evsw.Start()
require.NoError(t, err)
defer evsw.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := evsw.Stop(); err != nil {
t.Error(err)
}
})
count := 10
sum1, sum2 := 0, 0
@@ -335,7 +364,11 @@ func TestRemoveListenersAsync(t *testing.T) {
evsw := NewEventSwitch()
err := evsw.Start()
require.NoError(t, err)
defer evsw.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := evsw.Stop(); err != nil {
t.Error(err)
}
})
doneSum1 := make(chan uint64)
doneSum2 := make(chan uint64)

View File

@@ -15,8 +15,13 @@ import (
func TestExample(t *testing.T) {
s := pubsub.NewServer()
s.SetLogger(log.TestingLogger())
s.Start()
defer s.Stop()
err := s.Start()
require.NoError(t, err)
t.Cleanup(func() {
if err := s.Stop(); err != nil {
t.Error(err)
}
})
ctx := context.Background()
subscription, err := s.Subscribe(ctx, "example-client", query.MustParse("abci.account.name='John'"))

View File

@@ -25,7 +25,11 @@ func TestSubscribe(t *testing.T) {
s.SetLogger(log.TestingLogger())
err := s.Start()
require.NoError(t, err)
defer s.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := s.Stop(); err != nil {
t.Error(err)
}
})
ctx := context.Background()
subscription, err := s.Subscribe(ctx, clientID, query.Empty{})
@@ -66,7 +70,11 @@ func TestSubscribeWithCapacity(t *testing.T) {
s.SetLogger(log.TestingLogger())
err := s.Start()
require.NoError(t, err)
defer s.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := s.Stop(); err != nil {
t.Error(err)
}
})
ctx := context.Background()
assert.Panics(t, func() {
@@ -89,7 +97,11 @@ func TestSubscribeUnbuffered(t *testing.T) {
s.SetLogger(log.TestingLogger())
err := s.Start()
require.NoError(t, err)
defer s.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := s.Stop(); err != nil {
t.Error(err)
}
})
ctx := context.Background()
subscription, err := s.SubscribeUnbuffered(ctx, clientID, query.Empty{})
@@ -120,7 +132,11 @@ func TestSlowClientIsRemovedWithErrOutOfCapacity(t *testing.T) {
s.SetLogger(log.TestingLogger())
err := s.Start()
require.NoError(t, err)
defer s.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := s.Stop(); err != nil {
t.Error(err)
}
})
ctx := context.Background()
subscription, err := s.Subscribe(ctx, clientID, query.Empty{})
@@ -138,7 +154,11 @@ func TestDifferentClients(t *testing.T) {
s.SetLogger(log.TestingLogger())
err := s.Start()
require.NoError(t, err)
defer s.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := s.Stop(); err != nil {
t.Error(err)
}
})
ctx := context.Background()
subscription1, err := s.Subscribe(ctx, "client-1", query.MustParse("tm.events.type='NewBlock'"))
@@ -178,7 +198,11 @@ func TestSubscribeDuplicateKeys(t *testing.T) {
s := pubsub.NewServer()
s.SetLogger(log.TestingLogger())
require.NoError(t, s.Start())
defer s.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := s.Stop(); err != nil {
t.Error(err)
}
})
testCases := []struct {
query string
@@ -229,7 +253,11 @@ func TestClientSubscribesTwice(t *testing.T) {
s.SetLogger(log.TestingLogger())
err := s.Start()
require.NoError(t, err)
defer s.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := s.Stop(); err != nil {
t.Error(err)
}
})
ctx := context.Background()
q := query.MustParse("tm.events.type='NewBlock'")
@@ -254,7 +282,11 @@ func TestUnsubscribe(t *testing.T) {
s.SetLogger(log.TestingLogger())
err := s.Start()
require.NoError(t, err)
defer s.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := s.Stop(); err != nil {
t.Error(err)
}
})
ctx := context.Background()
subscription, err := s.Subscribe(ctx, clientID, query.MustParse("tm.events.type='NewBlock'"))
@@ -274,7 +306,11 @@ func TestClientUnsubscribesTwice(t *testing.T) {
s.SetLogger(log.TestingLogger())
err := s.Start()
require.NoError(t, err)
defer s.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := s.Stop(); err != nil {
t.Error(err)
}
})
ctx := context.Background()
_, err = s.Subscribe(ctx, clientID, query.MustParse("tm.events.type='NewBlock'"))
@@ -293,7 +329,11 @@ func TestResubscribe(t *testing.T) {
s.SetLogger(log.TestingLogger())
err := s.Start()
require.NoError(t, err)
defer s.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := s.Stop(); err != nil {
t.Error(err)
}
})
ctx := context.Background()
_, err = s.Subscribe(ctx, clientID, query.Empty{})
@@ -313,7 +353,11 @@ func TestUnsubscribeAll(t *testing.T) {
s.SetLogger(log.TestingLogger())
err := s.Start()
require.NoError(t, err)
defer s.Stop() //nolint:errcheck // ignore for tests
t.Cleanup(func() {
if err := s.Stop(); err != nil {
t.Error(err)
}
})
ctx := context.Background()
subscription1, err := s.Subscribe(ctx, clientID, query.MustParse("tm.events.type='NewBlock'"))
@@ -365,7 +409,12 @@ func benchmarkNClients(n int, b *testing.B) {
s := pubsub.NewServer()
err := s.Start()
require.NoError(b, err)
defer s.Stop() //nolint:errcheck // ignore for tests
b.Cleanup(func() {
if err := s.Stop(); err != nil {
b.Error(err)
}
})
ctx := context.Background()
for i := 0; i < n; i++ {
@@ -405,7 +454,11 @@ func benchmarkNClientsOneQuery(n int, b *testing.B) {
s := pubsub.NewServer()
err := s.Start()
require.NoError(b, err)
defer s.Stop() //nolint:errcheck // ignore for tests
b.Cleanup(func() {
if err := s.Stop(); err != nil {
b.Error(err)
}
})
ctx := context.Background()
q := query.MustParse("abci.Account.Owner = 'Ivan' AND abci.Invoices.Number = 1")