Skip to content

Commit 883c902

Browse files
authored
Fixing lint errors (#527)
## Summary - Fix golangci-lint errcheck violations by properly handling errors. ## Changes - Use `closers.Close()` for deferred Close() calls in non-test code - Use `require.NoError()` for error checks in test files - Update `localdb.Fixture()` to accept `*testing.T` for proper test error handling - Fix type assertion checks in `file_map.go` Signed-off-by: egorikas <egorgrishechko@gmail.com>
1 parent 07aa7e9 commit 883c902

File tree

12 files changed

+65
-46
lines changed

12 files changed

+65
-46
lines changed

agent/agentclient/client_test.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ func TestGetTag(t *testing.T) {
2626
handler: func(w http.ResponseWriter, r *http.Request) {
2727
require.Equal(t, http.MethodGet, r.Method)
2828
require.Equal(t, "/tags/latest", r.URL.Path)
29-
fmt.Fprint(w, digest.String())
29+
_, err := fmt.Fprint(w, digest.String())
30+
require.NoError(t, err)
3031
},
3132
wantDigest: digest,
3233
},
@@ -47,7 +48,8 @@ func TestGetTag(t *testing.T) {
4748
{
4849
desc: "invalid digest response",
4950
handler: func(w http.ResponseWriter, r *http.Request) {
50-
fmt.Fprint(w, "invalid-digest")
51+
_, err := fmt.Fprint(w, "invalid-digest")
52+
require.NoError(t, err)
5153
},
5254
wantErr: true,
5355
},
@@ -56,7 +58,8 @@ func TestGetTag(t *testing.T) {
5658
handler: func(w http.ResponseWriter, r *http.Request) {
5759
w.Header().Set("Content-Length", "10")
5860
w.WriteHeader(http.StatusOK)
59-
w.Write([]byte("123"))
61+
_, err := w.Write([]byte("123"))
62+
require.NoError(t, err)
6063
},
6164
wantErr: true,
6265
},
@@ -95,7 +98,8 @@ func TestDownload(t *testing.T) {
9598
handler: func(w http.ResponseWriter, r *http.Request) {
9699
require.Equal(t, http.MethodGet, r.Method)
97100
require.Equal(t, fmt.Sprintf("/namespace/%s/blobs/%s", namespace, digest), r.URL.Path)
98-
fmt.Fprint(w, content)
101+
_, err := fmt.Fprint(w, content)
102+
require.NoError(t, err)
99103
},
100104
want: content,
101105
},
@@ -119,7 +123,9 @@ func TestDownload(t *testing.T) {
119123
require.Error(t, err)
120124
} else {
121125
require.NoError(t, err)
122-
defer r.Close()
126+
defer func() {
127+
require.NoError(t, r.Close())
128+
}()
123129
b, err := io.ReadAll(r)
124130
require.NoError(t, err)
125131
require.Equal(t, test.want, string(b))

build-index/tagclient/client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ func (c *singleClient) Get(tag string) (core.Digest, error) {
106106
}
107107
return core.Digest{}, err
108108
}
109-
defer resp.Body.Close()
109+
defer closers.Close(resp.Body)
110110
b, err := io.ReadAll(resp.Body)
111111
if err != nil {
112112
return core.Digest{}, fmt.Errorf("read body: %s", err)
@@ -284,7 +284,7 @@ func (c *singleClient) Origin() (string, error) {
284284
if err != nil {
285285
return "", err
286286
}
287-
defer resp.Body.Close()
287+
defer closers.Close(resp.Body)
288288
b, err := io.ReadAll(resp.Body)
289289
if err != nil {
290290
return "", fmt.Errorf("read body: %s", err)

lib/persistedretry/tagreplication/store_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func newStoreMocks(t *testing.T) (*storeMocks, func()) {
4141
ctrl := gomock.NewController(t)
4242
cleanup.Add(ctrl.Finish)
4343

44-
db, c := localdb.Fixture()
44+
db, c := localdb.Fixture(t)
4545
cleanup.Add(c)
4646

4747
rv := mocktagreplication.NewMockRemoteValidator(ctrl)

lib/persistedretry/writeback/store_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func checkFailed(t *testing.T, store *Store, expected ...*Task) {
6969
func TestDatabaseNotLocked(t *testing.T) {
7070
require := require.New(t)
7171

72-
db, cleanup := localdb.Fixture()
72+
db, cleanup := localdb.Fixture(t)
7373
defer cleanup()
7474

7575
store := NewStore(db)
@@ -91,7 +91,7 @@ func TestDatabaseNotLocked(t *testing.T) {
9191
func TestAddPending(t *testing.T) {
9292
require := require.New(t)
9393

94-
db, cleanup := localdb.Fixture()
94+
db, cleanup := localdb.Fixture(t)
9595
defer cleanup()
9696

9797
store := NewStore(db)
@@ -106,7 +106,7 @@ func TestAddPending(t *testing.T) {
106106
func TestAddPendingTwiceReturnsErrTaskExists(t *testing.T) {
107107
require := require.New(t)
108108

109-
db, cleanup := localdb.Fixture()
109+
db, cleanup := localdb.Fixture(t)
110110
defer cleanup()
111111

112112
store := NewStore(db)
@@ -120,7 +120,7 @@ func TestAddPendingTwiceReturnsErrTaskExists(t *testing.T) {
120120
func TestAddFailed(t *testing.T) {
121121
require := require.New(t)
122122

123-
db, cleanup := localdb.Fixture()
123+
db, cleanup := localdb.Fixture(t)
124124
defer cleanup()
125125

126126
store := NewStore(db)
@@ -135,7 +135,7 @@ func TestAddFailed(t *testing.T) {
135135
func TestAddFailedTwiceReturnsErrTaskExists(t *testing.T) {
136136
require := require.New(t)
137137

138-
db, cleanup := localdb.Fixture()
138+
db, cleanup := localdb.Fixture(t)
139139
defer cleanup()
140140

141141
store := NewStore(db)
@@ -149,7 +149,7 @@ func TestAddFailedTwiceReturnsErrTaskExists(t *testing.T) {
149149
func TestStateTransitions(t *testing.T) {
150150
require := require.New(t)
151151

152-
db, cleanup := localdb.Fixture()
152+
db, cleanup := localdb.Fixture(t)
153153
defer cleanup()
154154

155155
store := NewStore(db)
@@ -172,7 +172,7 @@ func TestStateTransitions(t *testing.T) {
172172
func TestMarkTaskNotFound(t *testing.T) {
173173
require := require.New(t)
174174

175-
db, cleanup := localdb.Fixture()
175+
db, cleanup := localdb.Fixture(t)
176176
defer cleanup()
177177

178178
store := NewStore(db)
@@ -186,7 +186,7 @@ func TestMarkTaskNotFound(t *testing.T) {
186186
func TestRemove(t *testing.T) {
187187
require := require.New(t)
188188

189-
db, cleanup := localdb.Fixture()
189+
db, cleanup := localdb.Fixture(t)
190190
defer cleanup()
191191

192192
store := NewStore(db)
@@ -205,7 +205,7 @@ func TestRemove(t *testing.T) {
205205
func TestDelay(t *testing.T) {
206206
require := require.New(t)
207207

208-
db, cleanup := localdb.Fixture()
208+
db, cleanup := localdb.Fixture(t)
209209
defer cleanup()
210210

211211
store := NewStore(db)
@@ -230,7 +230,7 @@ func TestDelay(t *testing.T) {
230230
func TestFind(t *testing.T) {
231231
require := require.New(t)
232232

233-
db, cleanup := localdb.Fixture()
233+
db, cleanup := localdb.Fixture(t)
234234
defer cleanup()
235235

236236
store := NewStore(db)
@@ -249,7 +249,7 @@ func TestFind(t *testing.T) {
249249
func TestFindEmpty(t *testing.T) {
250250
require := require.New(t)
251251

252-
db, cleanup := localdb.Fixture()
252+
db, cleanup := localdb.Fixture(t)
253253
defer cleanup()
254254

255255
store := NewStore(db)

lib/store/base/file_entry.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ func (entry *localFileEntry) SetMetadataAt(
527527
if err != nil {
528528
return false, err
529529
}
530-
defer f.Close()
530+
defer closers.Close(f)
531531

532532
prev := make([]byte, len(b))
533533
if _, err := f.ReadAt(prev, offset); err != nil {
@@ -609,7 +609,7 @@ func compareAndWriteFile(filePath string, b []byte) (bool, error) {
609609
if err != nil {
610610
return false, err
611611
}
612-
defer f.Close()
612+
defer closers.Close(f)
613613

614614
// Compare with existing data, overwrite if different.
615615
buf := make([]byte, int(fs.Size()))

lib/store/base/file_map.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ func NewLATFileMap(clk clock.Clock) FileMap {
9393
func (fm *lruFileMap) get(name string) (*fileEntryWithAccessTime, bool) {
9494
if element, ok := fm.elements[name]; ok {
9595
fm.queue.MoveToFront(element)
96-
return element.Value.(*fileEntryWithAccessTime), ok
96+
entry, ok := element.Value.(*fileEntryWithAccessTime)
97+
return entry, ok
9798
}
9899
return nil, false
99100
}
@@ -140,7 +141,8 @@ func (fm *lruFileMap) add(name string, e *fileEntryWithAccessTime) bool {
140141

141142
func (fm *lruFileMap) getOldest() (*fileEntryWithAccessTime, bool) {
142143
if e := fm.queue.Back(); e != nil {
143-
return e.Value.(*fileEntryWithAccessTime), true
144+
entry, ok := e.Value.(*fileEntryWithAccessTime)
145+
return entry, ok
144146
}
145147
return nil, false
146148
}
@@ -149,7 +151,8 @@ func (fm *lruFileMap) remove(name string) (*fileEntryWithAccessTime, bool) {
149151
if e, ok := fm.elements[name]; ok {
150152
delete(fm.elements, name)
151153
fm.queue.Remove(e)
152-
return e.Value.(*fileEntryWithAccessTime), ok
154+
entry, ok := e.Value.(*fileEntryWithAccessTime)
155+
return entry, ok
153156
}
154157
return nil, false
155158
}

lib/store/base/file_map_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ func TestLRUUpdateLastAccessTimeOnMoveFrom(t *testing.T) {
388388
fp := filepath.Join(s1.GetDirectory(), name)
389389
f, err := os.Create(fp)
390390
require.NoError(err)
391-
f.Close()
391+
require.NoError(f.Close())
392392

393393
require.NoError(store.NewFileOp().AcceptState(s2).MoveFileFrom(name, s2, fp))
394394

lib/store/base/fixtures.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ func fileStatesFixture() (state1, state2, state3 FileState, run func()) {
3232
if err != nil {
3333
log.Fatal(err)
3434
}
35-
cleanup.Add(func() { os.RemoveAll(root) })
35+
cleanup.Add(func() {
36+
if err := os.RemoveAll(root); err != nil {
37+
log.Fatal(err)
38+
}
39+
})
3640

3741
state1Dir, err := os.MkdirTemp(root, "state1")
3842
if err != nil {

lib/store/ca_store_test.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,21 @@ func TestCAStoreInitVolumes(t *testing.T) {
4242

4343
volume1, err := os.MkdirTemp("/tmp", "volume")
4444
require.NoError(err)
45-
defer os.RemoveAll(volume1)
45+
t.Cleanup(func() {
46+
require.NoError(os.RemoveAll(volume1))
47+
})
4648

4749
volume2, err := os.MkdirTemp("/tmp", "volume")
4850
require.NoError(err)
49-
defer os.RemoveAll(volume2)
51+
t.Cleanup(func() {
52+
require.NoError(os.RemoveAll(volume2))
53+
})
5054

5155
volume3, err := os.MkdirTemp("/tmp", "volume")
5256
require.NoError(err)
53-
defer os.RemoveAll(volume3)
57+
t.Cleanup(func() {
58+
require.NoError(os.RemoveAll(volume3))
59+
})
5460

5561
config.Volumes = []Volume{
5662
{Location: volume1, Weight: 100},

lib/torrent/scheduler/conn/conn.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
"github.com/uber/kraken/lib/torrent/storage"
3333
"github.com/uber/kraken/lib/torrent/storage/piecereader"
3434
"github.com/uber/kraken/utils/bandwidth"
35+
"github.com/uber/kraken/utils/closers"
3536
"github.com/uber/kraken/utils/memsize"
3637
)
3738

@@ -179,7 +180,7 @@ func (c *Conn) Close() {
179180
}
180181
go func() {
181182
close(c.done)
182-
c.nc.Close()
183+
closers.Close(c.nc)
183184
c.wg.Wait()
184185
c.events.ConnClosed(c)
185186
}()
@@ -248,7 +249,7 @@ func (c *Conn) readLoop() {
248249
}
249250

250251
func (c *Conn) sendPiecePayload(pr storage.PieceReader) error {
251-
defer pr.Close()
252+
defer closers.Close(pr)
252253

253254
if err := c.bandwidth.ReserveEgress(int64(pr.Length())); err != nil {
254255
// TODO(codyg): This is bad. Consider alerting here.

0 commit comments

Comments
 (0)