Skip to content

Commit ac6bfd0

Browse files
author
JkLondon
committed
added errorlint
1 parent 838e03e commit ac6bfd0

File tree

5 files changed

+19
-10
lines changed

5 files changed

+19
-10
lines changed

.golangci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ linters:
2222
- unconvert
2323
- wastedassign
2424
- zerologlint
25+
- errorlint
2526
disable:
26-
- errorlint #TODO: enable me
2727
- noctx #TODO: enable me
2828
- nilerr #TODO: enable me
2929
- unused #TODO: enable me

mdbx/cursor_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -688,7 +688,7 @@ func TestCursor_Del(t *testing.T) {
688688

689689
k, v, err = cur.Get(nil, nil, Next)
690690
if err != nil {
691-
return fmt.Errorf("post-delete: %v", err)
691+
return fmt.Errorf("post-delete: %w", err)
692692
}
693693
item = items[2]
694694
if !bytes.Equal(k, []byte(item.k)) {

mdbx/error.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ package mdbx
88
import "C"
99

1010
import (
11+
"errors"
1112
"fmt"
1213
"os"
1314
"syscall"
@@ -26,6 +27,10 @@ func (err *OpError) Error() string {
2627
return err.Op + ": " + err.Errno.Error()
2728
}
2829

30+
func (err *OpError) Is(target error) bool {
31+
return errors.Is(err.Errno, target)
32+
}
33+
2934
// Errno is an error type that represents the (unique) errno values defined by
3035
// LMDB. Other errno values (such as EINVAL) are represented with type
3136
// syscall.Errno. On Windows, LMDB return codes are translated into portable
@@ -152,3 +157,8 @@ func IsErrnoFn(err error, fn func(error) bool) bool {
152157
}
153158
return fn(err)
154159
}
160+
161+
func (e Errno) Is(target error) bool {
162+
t, ok := target.(Errno)
163+
return ok && t == e
164+
}

mdbx/error_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package mdbx
22

33
import (
4+
"errors"
45
"fmt"
56
"syscall"
67
"testing"
@@ -36,13 +37,11 @@ func TestErrno(t *testing.T) {
3637
t.Errorf("errno(0) != nil: %#v", zeroerr)
3738
}
3839
syserr := _operrno("testop", int(syscall.EINVAL))
39-
//nolint:err113
40-
if syserr.(*OpError).Errno != syscall.EINVAL { // fails if error is Errno(syscall.EINVAL)
40+
if !errors.Is(syserr, syscall.EINVAL) { // fails if error is Errno(syscall.EINVAL)
4141
t.Errorf("errno(syscall.EINVAL) != syscall.EINVAL: %#v", syserr)
4242
}
4343
mdberr := _operrno("testop", int(KeyExist))
44-
//nolint:err113
45-
if mdberr.(*OpError).Errno != KeyExist {
44+
if !errors.Is(mdberr, KeyExist) {
4645
t.Errorf("errno(ErrKeyExist) != ErrKeyExist: %#v", syserr)
4746
}
4847
}

mdbx/mdbx_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ func TestTest1(t *testing.T) {
138138
for k, v := range data {
139139
err = txn.Put(db, []byte(k), []byte(v), NoOverwrite)
140140
if err != nil {
141-
return fmt.Errorf("put: %v", err)
141+
return fmt.Errorf("put: %w", err)
142142
}
143143
}
144144

@@ -159,7 +159,7 @@ func TestTest1(t *testing.T) {
159159
cursor, err := txn.OpenCursor(db)
160160
if err != nil {
161161
cursor.Close()
162-
return fmt.Errorf("cursor: %v", err)
162+
return fmt.Errorf("cursor: %w", err)
163163
}
164164
var bkey, bval []byte
165165
var bNumVal int
@@ -169,7 +169,7 @@ func TestTest1(t *testing.T) {
169169
break
170170
}
171171
if err != nil {
172-
return fmt.Errorf("cursor get: %v", err)
172+
return fmt.Errorf("cursor get: %w", err)
173173
}
174174
bNumVal++
175175
skey := string(bkey)
@@ -191,7 +191,7 @@ func TestTest1(t *testing.T) {
191191
cursor.Close()
192192
bval, err = txn.Get(db, []byte("Key-0"))
193193
if err != nil {
194-
return fmt.Errorf("get: %v", err)
194+
return fmt.Errorf("get: %w", err)
195195
}
196196
if string(bval) != "Val-0" {
197197
return fmt.Errorf("get: value %q does not match %q", bval, "Val-0")

0 commit comments

Comments
 (0)