Skip to content

Commit ca45e4e

Browse files
committed
Update linter config and fix minor linting issues
1 parent b88c15e commit ca45e4e

File tree

8 files changed

+473
-40
lines changed

8 files changed

+473
-40
lines changed

.golangci.toml

Lines changed: 426 additions & 9 deletions
Large diffs are not rendered by default.

decoder.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ const (
2929
_Slice
3030
// We don't use the next two. They are placeholders. See the spec
3131
// for more details.
32-
_Container //nolint: deadcode, varcheck
33-
_Marker //nolint: deadcode, varcheck
32+
_Container //nolint: deadcode, varcheck // above
33+
_Marker //nolint: deadcode, varcheck // above
3434
_Bool
3535
_Float32
3636
)

decoder_test.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ package maxminddb
22

33
import (
44
"encoding/hex"
5-
"io/ioutil"
65
"math/big"
6+
"os"
77
"reflect"
88
"strings"
99
"testing"
@@ -51,7 +51,7 @@ func TestFloat(t *testing.T) {
5151
}
5252

5353
func TestInt32(t *testing.T) {
54-
int32 := map[string]interface{}{
54+
int32s := map[string]interface{}{
5555
"0001": 0,
5656
"0401ffffffff": -1,
5757
"0101ff": 255,
@@ -65,7 +65,7 @@ func TestInt32(t *testing.T) {
6565
"04017fffffff": 2147483647,
6666
"040180000001": -2147483647,
6767
}
68-
validateDecoding(t, int32)
68+
validateDecoding(t, int32s)
6969
}
7070

7171
func TestMap(t *testing.T) {
@@ -120,7 +120,8 @@ func TestString(t *testing.T) {
120120
func TestByte(t *testing.T) {
121121
b := make(map[string]interface{})
122122
for key, val := range testStrings {
123-
oldCtrl, _ := hex.DecodeString(key[0:2])
123+
oldCtrl, err := hex.DecodeString(key[0:2])
124+
require.NoError(t, err)
124125
newCtrl := []byte{oldCtrl[0] ^ 0xc0}
125126
key = strings.Replace(key, hex.EncodeToString(oldCtrl), hex.EncodeToString(newCtrl), 1)
126127
b[key] = []byte(val.(string))
@@ -130,18 +131,18 @@ func TestByte(t *testing.T) {
130131
}
131132

132133
func TestUint16(t *testing.T) {
133-
uint16 := map[string]interface{}{
134+
uint16s := map[string]interface{}{
134135
"a0": uint64(0),
135136
"a1ff": uint64(255),
136137
"a201f4": uint64(500),
137138
"a22a78": uint64(10872),
138139
"a2ffff": uint64(65535),
139140
}
140-
validateDecoding(t, uint16)
141+
validateDecoding(t, uint16s)
141142
}
142143

143144
func TestUint32(t *testing.T) {
144-
uint32 := map[string]interface{}{
145+
uint32s := map[string]interface{}{
145146
"c0": uint64(0),
146147
"c1ff": uint64(255),
147148
"c201f4": uint64(500),
@@ -150,7 +151,7 @@ func TestUint32(t *testing.T) {
150151
"c3ffffff": uint64(16777215),
151152
"c4ffffffff": uint64(4294967295),
152153
}
153-
validateDecoding(t, uint32)
154+
validateDecoding(t, uint32s)
154155
}
155156

156157
func TestUint64(t *testing.T) {
@@ -205,11 +206,12 @@ func powBigInt(bi *big.Int, pow uint) *big.Int {
205206

206207
func validateDecoding(t *testing.T, tests map[string]interface{}) {
207208
for inputStr, expected := range tests {
208-
inputBytes, _ := hex.DecodeString(inputStr)
209+
inputBytes, err := hex.DecodeString(inputStr)
210+
require.NoError(t, err)
209211
d := decoder{inputBytes}
210212

211213
var result interface{}
212-
_, err := d.decode(0, reflect.ValueOf(&result), 0)
214+
_, err = d.decode(0, reflect.ValueOf(&result), 0)
213215
assert.NoError(t, err)
214216

215217
if !reflect.DeepEqual(result, expected) {
@@ -220,7 +222,7 @@ func validateDecoding(t *testing.T, tests map[string]interface{}) {
220222
}
221223

222224
func TestPointers(t *testing.T) {
223-
bytes, err := ioutil.ReadFile(testFile("maps-with-pointers.raw"))
225+
bytes, err := os.ReadFile(testFile("maps-with-pointers.raw"))
224226
require.NoError(t, err)
225227
d := decoder{bytes}
226228

deserializer_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,19 @@ type testDeserializer struct {
3030
key *string
3131
}
3232

33-
func (d *testDeserializer) ShouldSkip(offset uintptr) (bool, error) {
33+
func (d *testDeserializer) ShouldSkip(_ uintptr) (bool, error) {
3434
return false, nil
3535
}
3636

3737
func (d *testDeserializer) StartSlice(size uint) error {
3838
return d.add(make([]interface{}, size))
3939
}
4040

41-
func (d *testDeserializer) StartMap(size uint) error {
41+
func (d *testDeserializer) StartMap(_ uint) error {
4242
return d.add(map[string]interface{}{})
4343
}
4444

45+
//nolint:unparam // This is to meet the requirements of the interface.
4546
func (d *testDeserializer) End() error {
4647
d.stack = d.stack[:len(d.stack)-1]
4748
return nil

reader.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ func (r *Reader) decode(offset uintptr, result interface{}) error {
241241

242242
func (r *Reader) lookupPointer(ip net.IP) (uint, int, net.IP, error) {
243243
if ip == nil {
244-
return 0, 0, ip, errors.New("IP passed to Lookup cannot be nil")
244+
return 0, 0, nil, errors.New("IP passed to Lookup cannot be nil")
245245
}
246246

247247
ipV4Address := ip.To4()

reader_other.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,15 @@ func Open(file string) (*Reader, error) {
3434
}
3535

3636
if err := mapFile.Close(); err != nil {
37-
_ = munmap(mmap)
37+
//nolint:errcheck // we prefer to return the original error
38+
munmap(mmap)
3839
return nil, err
3940
}
4041

4142
reader, err := FromBytes(mmap)
4243
if err != nil {
43-
_ = munmap(mmap)
44+
//nolint:errcheck // we prefer to return the original error
45+
munmap(mmap)
4446
return nil, err
4547
}
4648

reader_test.go

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ package maxminddb
33
import (
44
"errors"
55
"fmt"
6-
"io/ioutil"
76
"math/big"
87
"math/rand"
98
"net"
9+
"os"
1010
"path/filepath"
1111
"testing"
1212
"time"
@@ -44,7 +44,8 @@ func TestReaderBytes(t *testing.T) {
4444
ipVersion,
4545
recordSize,
4646
)
47-
bytes, _ := ioutil.ReadFile(fileName)
47+
bytes, err := os.ReadFile(fileName)
48+
require.NoError(t, err)
4849
reader, err := FromBytes(bytes)
4950
require.NoError(t, err, "unexpected error while opening bytes: %v", err)
5051

@@ -246,7 +247,6 @@ func checkDecodingToInterface(t *testing.T, recordInterface interface{}) {
246247
assert.Equal(t, bigInt, record["uint128"])
247248
}
248249

249-
//nolint: maligned
250250
type TestType struct {
251251
Array []uint `maxminddb:"array"`
252252
Boolean bool `maxminddb:"boolean"`
@@ -557,30 +557,33 @@ func TestNonDatabase(t *testing.T) {
557557
}
558558

559559
func TestDecodingToNonPointer(t *testing.T) {
560-
reader, _ := Open(testFile("MaxMind-DB-test-decoder.mmdb"))
560+
reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb"))
561+
require.NoError(t, err)
561562

562563
var recordInterface interface{}
563-
err := reader.Lookup(net.ParseIP("::1.1.1.0"), recordInterface)
564+
err = reader.Lookup(net.ParseIP("::1.1.1.0"), recordInterface)
564565
assert.Equal(t, "result param must be a pointer", err.Error())
565566
assert.NoError(t, reader.Close(), "error on close")
566567
}
567568

568569
func TestNilLookup(t *testing.T) {
569-
reader, _ := Open(testFile("MaxMind-DB-test-decoder.mmdb"))
570+
reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb"))
571+
require.NoError(t, err)
570572

571573
var recordInterface interface{}
572-
err := reader.Lookup(nil, recordInterface)
574+
err = reader.Lookup(nil, recordInterface)
573575
assert.Equal(t, "IP passed to Lookup cannot be nil", err.Error())
574576
assert.NoError(t, reader.Close(), "error on close")
575577
}
576578

577579
func TestUsingClosedDatabase(t *testing.T) {
578-
reader, _ := Open(testFile("MaxMind-DB-test-decoder.mmdb"))
580+
reader, err := Open(testFile("MaxMind-DB-test-decoder.mmdb"))
581+
require.NoError(t, err)
579582
require.NoError(t, reader.Close())
580583

581584
var recordInterface interface{}
582585

583-
err := reader.Lookup(nil, recordInterface)
586+
err = reader.Lookup(nil, recordInterface)
584587
assert.Equal(t, "cannot call Lookup on a closed database", err.Error())
585588

586589
_, err = reader.LookupOffset(nil)
@@ -714,6 +717,7 @@ func BenchmarkInterfaceLookup(b *testing.B) {
714717
db, err := Open("GeoLite2-City.mmdb")
715718
require.NoError(b, err)
716719

720+
//nolint:gosec // this is a test
717721
r := rand.New(rand.NewSource(time.Now().UnixNano()))
718722
var result interface{}
719723

@@ -732,6 +736,7 @@ func BenchmarkInterfaceLookupNetwork(b *testing.B) {
732736
db, err := Open("GeoLite2-City.mmdb")
733737
require.NoError(b, err)
734738

739+
//nolint:gosec // this is a test
735740
r := rand.New(rand.NewSource(time.Now().UnixNano()))
736741
var result interface{}
737742

@@ -800,6 +805,7 @@ func BenchmarkCityLookup(b *testing.B) {
800805
db, err := Open("GeoLite2-City.mmdb")
801806
require.NoError(b, err)
802807

808+
//nolint:gosec // this is a test
803809
r := rand.New(rand.NewSource(time.Now().UnixNano()))
804810
var result fullCity
805811

@@ -818,6 +824,7 @@ func BenchmarkCityLookupNetwork(b *testing.B) {
818824
db, err := Open("GeoLite2-City.mmdb")
819825
require.NoError(b, err)
820826

827+
//nolint:gosec // this is a test
821828
r := rand.New(rand.NewSource(time.Now().UnixNano()))
822829
var result fullCity
823830

@@ -842,6 +849,7 @@ func BenchmarkCountryCode(b *testing.B) {
842849
} `maxminddb:"country"`
843850
}
844851

852+
//nolint:gosec // this is a test
845853
r := rand.New(rand.NewSource(0))
846854
var result MinCountry
847855

verifier.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,11 +157,14 @@ func (v *verifier) verifyDataSection(offsets map[uint]bool) error {
157157

158158
pointer := offset
159159

160-
if _, ok := offsets[pointer]; ok {
161-
delete(offsets, pointer)
162-
} else {
163-
return newInvalidDatabaseError("found data (%v) at %v that the search tree does not point to", data, pointer)
160+
if _, ok := offsets[pointer]; !ok {
161+
return newInvalidDatabaseError(
162+
"found data (%v) at %v that the search tree does not point to",
163+
data,
164+
pointer,
165+
)
164166
}
167+
delete(offsets, pointer)
165168

166169
offset = newOffset
167170
}

0 commit comments

Comments
 (0)