Skip to content

Commit 6e46d15

Browse files
authored
Improvement/linter (#330)
* add format configurations for golangci-lint * format code as per the formatter
1 parent 4af513f commit 6e46d15

File tree

19 files changed

+363
-301
lines changed

19 files changed

+363
-301
lines changed

.golangci.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# See for configurations: https://golangci-lint.run/usage/configuration/
2+
version: 2
3+
# See: https://golangci-lint.run/usage/formatters/
4+
formatters:
5+
default: none
6+
enable:
7+
- gofmt # https://pkg.go.dev/cmd/gofmt
8+
- gofumpt # https://github.com/mvdan/gofumpt
9+
10+
settings:
11+
gofmt:
12+
simplify: true # Simplify code: gofmt with `-s` option.
13+
14+
gofumpt:
15+
# Module path which contains the source code being formatted.
16+
# Default: ""
17+
module-path: github.com/rosedblabs/rosedb/v2 # Should match with module in go.mod
18+
# Choose whether to use the extra rules.
19+
# Default: false
20+
extra-rules: true
21+
22+
# See: https://golangci-lint.run/usage/linters/
23+
linters:
24+
default: none
25+
enable:
26+
- staticcheck
27+
- govet
28+
- gocritic
29+
- unconvert
30+
- ineffassign
31+
- mirror
32+
- unused
33+
- usestdlibvars
34+
- loggercheck
35+
- exptostd
36+
- godot
37+
- copyloopvar
38+
- perfsprint
39+
- testifylint
40+
- thelper
41+
- nilerr
42+
43+
# See: https://golangci-lint.run/usage/false-positives/
44+
# exclusion:
45+
# paths:
46+
# rules:
47+
48+
settings:
49+
godot:
50+
period: false

batch.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func (db *DB) NewBatch(options BatchOptions) *Batch {
6464
return batch
6565
}
6666

67-
func newBatch() interface{} {
67+
func newBatch() any {
6868
node, err := snowflake.NewNode(1)
6969
if err != nil {
7070
panic(fmt.Sprintf("snowflake.NewNode(1) failed: %v", err))
@@ -75,7 +75,7 @@ func newBatch() interface{} {
7575
}
7676
}
7777

78-
func newRecord() interface{} {
78+
func newRecord() any {
7979
return &LogRecord{}
8080
}
8181

@@ -116,7 +116,7 @@ func (b *Batch) unlock() {
116116
}
117117

118118
// Put adds a key-value pair to the batch for writing.
119-
func (b *Batch) Put(key []byte, value []byte) error {
119+
func (b *Batch) Put(key, value []byte) error {
120120
if len(key) == 0 {
121121
return ErrKeyIsEmpty
122122
}
@@ -129,7 +129,7 @@ func (b *Batch) Put(key []byte, value []byte) error {
129129

130130
b.mu.Lock()
131131
// write to pendingWrites
132-
var record = b.lookupPendingWrites(key)
132+
record := b.lookupPendingWrites(key)
133133
if record == nil {
134134
// if the key does not exist in pendingWrites, write a new record
135135
// the record will be put back to the pool when the batch is committed or rollbacked
@@ -145,7 +145,7 @@ func (b *Batch) Put(key []byte, value []byte) error {
145145
}
146146

147147
// PutWithTTL adds a key-value pair with ttl to the batch for writing.
148-
func (b *Batch) PutWithTTL(key []byte, value []byte, ttl time.Duration) error {
148+
func (b *Batch) PutWithTTL(key, value []byte, ttl time.Duration) error {
149149
if len(key) == 0 {
150150
return ErrKeyIsEmpty
151151
}
@@ -158,7 +158,7 @@ func (b *Batch) PutWithTTL(key []byte, value []byte, ttl time.Duration) error {
158158

159159
b.mu.Lock()
160160
// write to pendingWrites
161-
var record = b.lookupPendingWrites(key)
161+
record := b.lookupPendingWrites(key)
162162
if record == nil {
163163
// if the key does not exist in pendingWrites, write a new record
164164
// the record will be put back to the pool when the batch is committed or rollbacked
@@ -185,7 +185,7 @@ func (b *Batch) Get(key []byte) ([]byte, error) {
185185
now := time.Now().UnixNano()
186186
// get from pendingWrites
187187
b.mu.RLock()
188-
var record = b.lookupPendingWrites(key)
188+
record := b.lookupPendingWrites(key)
189189
b.mu.RUnlock()
190190

191191
// if the record is in pendingWrites, return the value directly
@@ -233,7 +233,7 @@ func (b *Batch) Delete(key []byte) error {
233233
b.mu.Lock()
234234
// only need key and type when deleting a value.
235235
var exist bool
236-
var record = b.lookupPendingWrites(key)
236+
record := b.lookupPendingWrites(key)
237237
if record != nil {
238238
record.Type = LogRecordDeleted
239239
record.Value = nil
@@ -264,7 +264,7 @@ func (b *Batch) Exist(key []byte) (bool, error) {
264264
now := time.Now().UnixNano()
265265
// check if the key exists in pendingWrites
266266
b.mu.RLock()
267-
var record = b.lookupPendingWrites(key)
267+
record := b.lookupPendingWrites(key)
268268
b.mu.RUnlock()
269269

270270
if record != nil {
@@ -306,7 +306,7 @@ func (b *Batch) Expire(key []byte, ttl time.Duration) error {
306306
b.mu.Lock()
307307
defer b.mu.Unlock()
308308

309-
var record = b.lookupPendingWrites(key)
309+
record := b.lookupPendingWrites(key)
310310

311311
// if the key exists in pendingWrites, update the expiry time directly
312312
if record != nil {
@@ -356,7 +356,7 @@ func (b *Batch) TTL(key []byte) (time.Duration, error) {
356356
b.mu.Lock()
357357
defer b.mu.Unlock()
358358

359-
var record = b.lookupPendingWrites(key)
359+
record := b.lookupPendingWrites(key)
360360
if record != nil {
361361
if record.Expire == 0 {
362362
return -1, nil
@@ -413,7 +413,7 @@ func (b *Batch) Persist(key []byte) error {
413413
defer b.mu.Unlock()
414414

415415
// if the key exists in pendingWrites, update the expiry time directly
416-
var record = b.lookupPendingWrites(key)
416+
record := b.lookupPendingWrites(key)
417417
if record != nil {
418418
if record.Type == LogRecordDeleted && record.IsExpired(time.Now().UnixNano()) {
419419
return ErrKeyNotFound

batch_test.go

Lines changed: 41 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func TestBatch_Put_IncrSegmentFile(t *testing.T) {
2828
options := DefaultOptions
2929
options.SegmentSize = 64 * MB
3030
db, err := Open(options)
31-
assert.Nil(t, err)
31+
assert.NoError(t, err)
3232
defer destroyDB(db)
3333

3434
generateData(t, db, 1, 2000, 32*KB)
@@ -37,31 +37,31 @@ func TestBatch_Put_IncrSegmentFile(t *testing.T) {
3737
batch := db.NewBatch(DefaultBatchOptions)
3838
for i := 0; i < 1000; i++ {
3939
err := batch.Put(utils.GetTestKey(i*100), utils.RandomValue(32*KB))
40-
assert.Nil(t, err)
40+
assert.NoError(t, err)
4141
}
4242
err = batch.Commit()
43-
assert.Nil(t, err)
43+
assert.NoError(t, err)
4444
}
4545

4646
func TestBatch_Get_Normal(t *testing.T) {
4747
options := DefaultOptions
4848
db, err := Open(options)
49-
assert.Nil(t, err)
49+
assert.NoError(t, err)
5050
defer destroyDB(db)
5151

5252
batch1 := db.NewBatch(DefaultBatchOptions)
5353
err = batch1.Put(utils.GetTestKey(12), utils.RandomValue(128))
54-
assert.Nil(t, err)
54+
assert.NoError(t, err)
5555
val1, err := batch1.Get(utils.GetTestKey(12))
56-
assert.Nil(t, err)
56+
assert.NoError(t, err)
5757
assert.NotNil(t, val1)
5858
_ = batch1.Commit()
5959

6060
generateData(t, db, 400, 500, 4*KB)
6161

6262
batch2 := db.NewBatch(DefaultBatchOptions)
6363
err = batch2.Delete(utils.GetTestKey(450))
64-
assert.Nil(t, err)
64+
assert.NoError(t, err)
6565
val, err := batch2.Get(utils.GetTestKey(450))
6666
assert.Nil(t, val)
6767
assert.Equal(t, ErrKeyNotFound, err)
@@ -70,7 +70,7 @@ func TestBatch_Get_Normal(t *testing.T) {
7070
// reopen
7171
_ = db.Close()
7272
db2, err := Open(options)
73-
assert.Nil(t, err)
73+
assert.NoError(t, err)
7474
defer func() {
7575
_ = db2.Close()
7676
}()
@@ -81,34 +81,34 @@ func TestBatch_Get_Normal(t *testing.T) {
8181
func TestBatch_Delete_Normal(t *testing.T) {
8282
options := DefaultOptions
8383
db, err := Open(options)
84-
assert.Nil(t, err)
84+
assert.NoError(t, err)
8585
defer destroyDB(db)
8686

8787
err = db.Delete([]byte("not exist"))
88-
assert.Nil(t, err)
88+
assert.NoError(t, err)
8989

9090
generateData(t, db, 1, 100, 128)
9191
err = db.Delete(utils.GetTestKey(99))
92-
assert.Nil(t, err)
92+
assert.NoError(t, err)
9393

9494
exist, err := db.Exist(utils.GetTestKey(99))
95-
assert.Nil(t, err)
95+
assert.NoError(t, err)
9696
assert.False(t, exist)
9797

9898
batch := db.NewBatch(DefaultBatchOptions)
9999
err = batch.Put(utils.GetTestKey(200), utils.RandomValue(100))
100-
assert.Nil(t, err)
100+
assert.NoError(t, err)
101101
err = batch.Delete(utils.GetTestKey(200))
102-
assert.Nil(t, err)
102+
assert.NoError(t, err)
103103
exist1, err := batch.Exist(utils.GetTestKey(200))
104-
assert.Nil(t, err)
104+
assert.NoError(t, err)
105105
assert.False(t, exist1)
106106
_ = batch.Commit()
107107

108108
// reopen
109109
_ = db.Close()
110110
db2, err := Open(options)
111-
assert.Nil(t, err)
111+
assert.NoError(t, err)
112112
defer func() {
113113
_ = db2.Close()
114114
}()
@@ -118,75 +118,78 @@ func TestBatch_Delete_Normal(t *testing.T) {
118118
func TestBatch_Exist_Normal(t *testing.T) {
119119
options := DefaultOptions
120120
db, err := Open(options)
121-
assert.Nil(t, err)
121+
assert.NoError(t, err)
122122
defer destroyDB(db)
123123

124124
generateData(t, db, 1, 100, 128)
125125
batch := db.NewBatch(DefaultBatchOptions)
126126
ok1, err := batch.Exist(utils.GetTestKey(99))
127-
assert.Nil(t, err)
127+
assert.NoError(t, err)
128128
assert.True(t, ok1)
129129
ok2, err := batch.Exist(utils.GetTestKey(5000))
130-
assert.Nil(t, err)
130+
assert.NoError(t, err)
131131
assert.False(t, ok2)
132132
_ = batch.Commit()
133133

134134
_ = db.Close()
135135
db2, err := Open(options)
136-
assert.Nil(t, err)
136+
assert.NoError(t, err)
137137
defer func() {
138138
_ = db2.Close()
139139
}()
140140
assertKeyExistOrNot(t, db2, utils.GetTestKey(99), true)
141141
}
142142

143-
func generateData(t *testing.T, db *DB, start, end int, valueLen int) {
143+
func generateData(t *testing.T, db *DB, start, end, valueLen int) {
144+
t.Helper()
144145
for ; start < end; start++ {
145146
err := db.Put(utils.GetTestKey(start), utils.RandomValue(valueLen))
146-
assert.Nil(t, err)
147+
assert.NoError(t, err)
147148
}
148149
}
149150

150-
func batchPutAndIterate(t *testing.T, segmentSize int64, size int, valueLen int) {
151+
func batchPutAndIterate(t *testing.T, segmentSize int64, size, valueLen int) {
152+
t.Helper()
151153
options := DefaultOptions
152154
options.SegmentSize = segmentSize
153155
db, err := Open(options)
154-
assert.Nil(t, err)
156+
assert.NoError(t, err)
155157
defer destroyDB(db)
156158

157159
batch := db.NewBatch(BatchOptions{})
158160

159161
for i := 0; i < size; i++ {
160162
err := batch.Put(utils.GetTestKey(i), utils.RandomValue(valueLen))
161-
assert.Nil(t, err)
163+
assert.NoError(t, err)
162164
}
163165
err = batch.Commit()
164-
assert.Nil(t, err)
166+
assert.NoError(t, err)
165167

166168
for i := 0; i < size; i++ {
167169
value, err := db.Get(utils.GetTestKey(i))
168-
assert.Nil(t, err)
169-
assert.Equal(t, len(utils.RandomValue(valueLen)), len(value))
170+
assert.NoError(t, err)
171+
assert.Len(t, value, len(utils.RandomValue(valueLen)))
170172
}
171173

172174
// reopen
173175
_ = db.Close()
174176
db2, err := Open(options)
175-
assert.Nil(t, err)
177+
assert.NoError(t, err)
176178
defer func() {
177179
_ = db2.Close()
178180
}()
179181
for i := 0; i < size; i++ {
180182
value, err := db2.Get(utils.GetTestKey(i))
181-
assert.Nil(t, err)
182-
assert.Equal(t, len(utils.RandomValue(valueLen)), len(value))
183+
assert.NoError(t, err)
184+
assert.Len(t, value, len(utils.RandomValue(valueLen)))
183185
}
184186
}
185187

186188
func assertKeyExistOrNot(t *testing.T, db *DB, key []byte, exist bool) {
189+
t.Helper()
187190
val, err := db.Get(key)
188191
if exist {
189-
assert.Nil(t, err)
192+
assert.NoError(t, err)
190193
assert.NotNil(t, val)
191194
} else {
192195
assert.Nil(t, val)
@@ -197,18 +200,18 @@ func assertKeyExistOrNot(t *testing.T, db *DB, key []byte, exist bool) {
197200
func TestBatch_Rollback(t *testing.T) {
198201
options := DefaultOptions
199202
db, err := Open(options)
200-
assert.Nil(t, err)
203+
assert.NoError(t, err)
201204
defer destroyDB(db)
202205

203206
key := []byte("rosedb")
204207
value := []byte("val")
205208

206209
batcher := db.NewBatch(DefaultBatchOptions)
207210
err = batcher.Put(key, value)
208-
assert.Nil(t, err)
211+
assert.NoError(t, err)
209212

210213
err = batcher.Rollback()
211-
assert.Nil(t, err)
214+
assert.NoError(t, err)
212215

213216
resp, err := db.Get(key)
214217
assert.Equal(t, ErrKeyNotFound, err)
@@ -218,7 +221,7 @@ func TestBatch_Rollback(t *testing.T) {
218221
func TestBatch_SetTwice(t *testing.T) {
219222
options := DefaultOptions
220223
db, err := Open(options)
221-
assert.Nil(t, err)
224+
assert.NoError(t, err)
222225
defer destroyDB(db)
223226

224227
batch := db.NewBatch(DefaultBatchOptions)
@@ -229,11 +232,11 @@ func TestBatch_SetTwice(t *testing.T) {
229232
_ = batch.Put(key, value2)
230233

231234
res, err := batch.Get(key)
232-
assert.Nil(t, err)
235+
assert.NoError(t, err)
233236
assert.Equal(t, res, value2)
234237

235238
_ = batch.Commit()
236239
res2, err := db.Get(key)
237-
assert.Nil(t, err)
240+
assert.NoError(t, err)
238241
assert.Equal(t, res2, value2)
239242
}

0 commit comments

Comments
 (0)