Skip to content

Commit 6cf129d

Browse files
Enable usetesting lints (#4366)
Opts us into avoiding `context.Background` / `context.TODO` in tests in favor of [`t.Context`][1], which is nearly always the context you want to use in tests. Has come up in a couple separate PR reviews (e.g. #4365), so figured I may as well update this everywhere. Similar to bufbuild/plugins#2282. Ref: https://golangci-lint.run/docs/linters/configuration/#usetesting [1]: https://pkg.go.dev/testing#T.Context
1 parent b09ac68 commit 6cf129d

File tree

45 files changed

+194
-216
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+194
-216
lines changed

.golangci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ linters:
4141
- staticcheck
4242
- unconvert
4343
- unused
44+
- usetesting
4445
- wastedassign
4546
- whitespace
4647
settings:
@@ -88,6 +89,9 @@ linters:
8889
require-explanation: true
8990
require-specific: true
9091
allow-unused: false
92+
usetesting:
93+
context-background: true
94+
context-todo: true
9195
exclusions:
9296
generated: lax
9397
presets:

cmd/buf/buf_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ package main
1616

1717
import (
1818
"bytes"
19-
"context"
2019
"encoding/json"
2120
"errors"
2221
"fmt"
@@ -1356,7 +1355,7 @@ func TestCheckLsBreakingRulesFromConfigExceptDeprecated(t *testing.T) {
13561355
// Do not need any custom lint/breaking plugins here.
13571356
client, err := bufcheck.NewClient(slogtestext.NewLogger(t))
13581357
require.NoError(t, err)
1359-
allRules, err := client.AllRules(context.Background(), check.RuleTypeBreaking, version)
1358+
allRules, err := client.AllRules(t.Context(), check.RuleTypeBreaking, version)
13601359
require.NoError(t, err)
13611360
allPackageIDs := make([]string, 0, len(allRules))
13621361
for _, rule := range allRules {

cmd/buf/internal/command/alpha/protoc/protoc_test.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ package protoc
1616

1717
import (
1818
"bytes"
19-
"context"
2019
"fmt"
2120
"os"
2221
"path/filepath"
@@ -222,7 +221,7 @@ func testInsertionPointMixedPathsSuccess(t *testing.T, receiverOut string, write
222221
fmt.Sprintf("--%s_out=%s", "insertion-point-writer", writerOut),
223222
}
224223
err := prototesting.RunProtoc(
225-
context.Background(),
224+
t.Context(),
226225
[]string{dirPath},
227226
filePaths,
228227
false,
@@ -338,7 +337,7 @@ func testCompareGeneratedStubs(
338337
)
339338
require.NoError(t, err)
340339
diff, err := storage.DiffBytes(
341-
context.Background(),
340+
t.Context(),
342341
actualReadWriteBucket,
343342
bufReadWriteBucket,
344343
)
@@ -418,7 +417,7 @@ func testCompareGeneratedStubsArchive(
418417
require.NoError(t, err)
419418
actualReadWriteBucket := storagemem.NewReadWriteBucket()
420419
err = storagearchive.Unzip(
421-
context.Background(),
420+
t.Context(),
422421
bytes.NewReader(actualData),
423422
int64(len(actualData)),
424423
actualReadWriteBucket,
@@ -428,14 +427,14 @@ func testCompareGeneratedStubsArchive(
428427
require.NoError(t, err)
429428
bufReadWriteBucket := storagemem.NewReadWriteBucket()
430429
err = storagearchive.Unzip(
431-
context.Background(),
430+
t.Context(),
432431
bytes.NewReader(bufData),
433432
int64(len(bufData)),
434433
bufReadWriteBucket,
435434
)
436435
require.NoError(t, err)
437436
diff, err := storage.DiffBytes(
438-
context.Background(),
437+
t.Context(),
439438
actualReadWriteBucket,
440439
bufReadWriteBucket,
441440
)

cmd/buf/internal/command/config/configmigrate/configmigrate_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ package configmigrate
1616

1717
import (
1818
"bytes"
19-
"context"
2019
"path/filepath"
2120
"testing"
2221

@@ -54,7 +53,7 @@ func testCompareConfigMigrate(t *testing.T, dir string, expectCode int, expectSt
5453
tempDir := t.TempDir()
5554
tempBucket, err := storageosProvider.NewReadWriteBucket(tempDir)
5655
require.NoError(t, err)
57-
ctx := context.Background()
56+
ctx := t.Context()
5857
_, err = storage.Copy(ctx, inputBucket, tempBucket)
5958
require.NoError(t, err)
6059
var outputBucket storage.ReadWriteBucket

cmd/buf/internal/command/generate/generate_test.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ func TestGenerateV2LocalPluginBasic(t *testing.T) {
165165
actual, err := storageos.NewProvider().NewReadWriteBucket(tempDirPath)
166166
require.NoError(t, err)
167167

168-
diff, err := storage.DiffBytes(context.Background(), expected, actual)
168+
diff, err := storage.DiffBytes(t.Context(), expected, actual)
169169
require.NoError(t, err)
170170
require.Empty(t, string(diff))
171171
}
@@ -188,7 +188,7 @@ func TestGenerateV2LocalPluginTypes(t *testing.T) {
188188
actual, err := storageos.NewProvider().NewReadWriteBucket(tempDirPath)
189189
require.NoError(t, err)
190190

191-
diff, err := storage.DiffBytes(context.Background(), expected, actual)
191+
diff, err := storage.DiffBytes(t.Context(), expected, actual)
192192
require.NoError(t, err)
193193
require.Empty(t, string(diff))
194194
}
@@ -657,7 +657,7 @@ func testGenerateInsertionPoint(
657657
) {
658658
storageosProvider := storageos.NewProvider()
659659
tempDir, readWriteBucket := internaltesting.CopyReadBucketToTempDir(
660-
context.Background(),
660+
t.Context(),
661661
t,
662662
storageosProvider,
663663
storagemem.NewReadWriteBucket(),
@@ -672,7 +672,7 @@ func testGenerateInsertionPoint(
672672
)
673673
expectedOutput, err := storageosProvider.NewReadWriteBucket(expectedOutputPath)
674674
require.NoError(t, err)
675-
diff, err := storage.DiffBytes(context.Background(), expectedOutput, readWriteBucket)
675+
diff, err := storage.DiffBytes(t.Context(), expectedOutput, readWriteBucket)
676676
require.NoError(t, err)
677677
require.Empty(t, string(diff))
678678
}
@@ -802,7 +802,7 @@ func testCompareGeneratedStubs(
802802
)
803803
require.NoError(t, err)
804804
diff, err := storage.DiffBytes(
805-
context.Background(),
805+
t.Context(),
806806
actualReadWriteBucket,
807807
bufReadWriteBucket,
808808
transformGolangProtocVersionToUnknown(t),
@@ -864,7 +864,7 @@ func testCompareGeneratedStubsArchive(
864864
require.NoError(t, err)
865865
actualReadWriteBucket := storagemem.NewReadWriteBucket()
866866
err = storagearchive.Unzip(
867-
context.Background(),
867+
t.Context(),
868868
bytes.NewReader(actualData),
869869
int64(len(actualData)),
870870
actualReadWriteBucket,
@@ -874,14 +874,14 @@ func testCompareGeneratedStubsArchive(
874874
require.NoError(t, err)
875875
bufReadWriteBucket := storagemem.NewReadWriteBucket()
876876
err = storagearchive.Unzip(
877-
context.Background(),
877+
t.Context(),
878878
bytes.NewReader(bufData),
879879
int64(len(bufData)),
880880
bufReadWriteBucket,
881881
)
882882
require.NoError(t, err)
883883
diff, err := storage.DiffBytes(
884-
context.Background(),
884+
t.Context(),
885885
actualReadWriteBucket,
886886
bufReadWriteBucket,
887887
transformGolangProtocVersionToUnknown(t),
@@ -938,7 +938,7 @@ func testGenerateDeleteOutsWithArgAndConfig(
938938
},
939939
)
940940
}
941-
ctx := context.Background()
941+
ctx := t.Context()
942942
tmpDirPath := t.TempDir()
943943
storageBucket, err := storageos.NewProvider().NewReadWriteBucket(tmpDirPath)
944944
require.NoError(t, err)

cmd/buf/workspace_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ package main
1616

1717
import (
1818
"bytes"
19-
"context"
2019
"fmt"
2120
"os"
2221
"path/filepath"
@@ -1716,7 +1715,7 @@ func createZipFromDir(t *testing.T, rootPath string, archiveName string) string
17161715

17171716
buffer := bytes.NewBuffer(nil)
17181717
require.NoError(t, storagearchive.Zip(
1719-
context.Background(),
1718+
t.Context(),
17201719
testdataBucket,
17211720
buffer,
17221721
true,
@@ -1728,7 +1727,7 @@ func createZipFromDir(t *testing.T, rootPath string, archiveName string) string
17281727
)
17291728
require.NoError(t, err)
17301729
require.NoError(t, storage.PutPath(
1731-
context.Background(),
1730+
t.Context(),
17321731
zipBucket,
17331732
archiveName,
17341733
buffer.Bytes(),

cmd/protoc-gen-buf-lint/lint_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ func testRunHandlerFunc(
301301

302302
exitCode := app.GetExitCode(
303303
protoplugin.Run(
304-
context.Background(),
304+
t.Context(),
305305
protoplugin.Env{
306306
Args: nil,
307307
Stdin: stdin,
@@ -331,7 +331,7 @@ func testBuildRequest(
331331
fileToGenerate []string,
332332
) protoplugin.Request {
333333
fileDescriptorSet, err := prototesting.GetProtocFileDescriptorSet(
334-
context.Background(),
334+
t.Context(),
335335
[]string{root},
336336
realFilePaths,
337337
true,

private/buf/bufcurl/invoker_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
package bufcurl
1616

1717
import (
18-
"context"
1918
"os"
2019
"testing"
2120

@@ -32,7 +31,7 @@ func TestCountUnrecognized(t *testing.T) {
3231
Resolver: &protocompile.SourceResolver{
3332
ImportPaths: []string{"./testdata"},
3433
},
35-
}).Compile(context.Background(), "test.proto")
34+
}).Compile(t.Context(), "test.proto")
3635
require.NoError(t, err)
3736
msgType, err := descriptors.AsResolver().FindMessageByName("foo.bar.Message")
3837
require.NoError(t, err)

private/buf/buffetch/buffetch_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
package buffetch
1616

1717
import (
18-
"context"
1918
"io"
2019
"log/slog"
2120
"path/filepath"
@@ -106,7 +105,7 @@ func testRoundTripLocalFile(
106105
reader := testNewFetchReader(logger)
107106
writer := testNewFetchWriter(logger)
108107

109-
ctx := context.Background()
108+
ctx := t.Context()
110109
container := app.NewContainer(nil, nil, nil, nil)
111110

112111
tmpDir := t.TempDir()

private/buf/buffetch/internal/reader_test.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import (
3131

3232
func TestGetReadBucketCloserForBucketNoTerminateFileName(t *testing.T) {
3333
t.Parallel()
34-
ctx := context.Background()
34+
ctx := t.Context()
3535
inputBucket, err := storageos.NewProvider().NewReadWriteBucket("testdata/bufyaml/one/two")
3636
require.NoError(t, err)
3737
readBucketCloser, bucketTargeting, err := getReadBucketCloserForBucket(
@@ -50,7 +50,7 @@ func TestGetReadBucketCloserForBucketNoTerminateFileName(t *testing.T) {
5050

5151
func TestGetReadBucketCloserTerminateFileName(t *testing.T) {
5252
t.Parallel()
53-
ctx := context.Background()
53+
ctx := t.Context()
5454
inputBucket, err := storageos.NewProvider().NewReadWriteBucket("testdata/bufyaml/one/two")
5555
require.NoError(t, err)
5656
readBucketCloser, bucketTargeting, err := getReadBucketCloserForBucket(
@@ -72,7 +72,7 @@ func TestGetReadBucketCloserTerminateFileName(t *testing.T) {
7272

7373
func TestGetReadBucketCloserForBucketNoSubDirPath(t *testing.T) {
7474
t.Parallel()
75-
ctx := context.Background()
75+
ctx := t.Context()
7676
inputBucket, err := storageos.NewProvider().NewReadWriteBucket("testdata/bufyaml/one/two/three/four/five")
7777
require.NoError(t, err)
7878
readBucketCloser, bucketTargeting, err := getReadBucketCloserForBucket(
@@ -94,7 +94,7 @@ func TestGetReadBucketCloserForBucketNoSubDirPath(t *testing.T) {
9494

9595
func TestGetReadBucketCloserForBucketAbs(t *testing.T) {
9696
t.Parallel()
97-
ctx := context.Background()
97+
ctx := t.Context()
9898
absDirPath, err := filepath.Abs(".")
9999
require.NoError(t, err)
100100
inputBucket, err := storageos.NewProvider().NewReadWriteBucket(normalpath.Join(absDirPath, "testdata/bufyaml/one/two"))
@@ -118,7 +118,7 @@ func TestGetReadBucketCloserForBucketAbs(t *testing.T) {
118118

119119
func TestGetReadWriteBucketForOSNoTerminateFileName(t *testing.T) {
120120
t.Parallel()
121-
ctx := context.Background()
121+
ctx := t.Context()
122122
readWriteBucket, bucketTargeting, err := getReadWriteBucketForOS(
123123
ctx,
124124
slogtestext.NewLogger(t),
@@ -138,7 +138,7 @@ func TestGetReadWriteBucketForOSNoTerminateFileName(t *testing.T) {
138138

139139
func TestGetReadWriteBucketForOSTerminateFileName(t *testing.T) {
140140
t.Parallel()
141-
ctx := context.Background()
141+
ctx := t.Context()
142142
readWriteBucket, bucketTargeting, err := getReadWriteBucketForOS(
143143
ctx,
144144
slogtestext.NewLogger(t),
@@ -162,7 +162,7 @@ func TestGetReadWriteBucketForOSTerminateFileName(t *testing.T) {
162162
func TestGetReadWriteBucketForOSParentPwd(t *testing.T) {
163163
// Cannot be parallel since we chdir.
164164

165-
ctx := context.Background()
165+
ctx := t.Context()
166166
pwd, err := osext.Getwd()
167167
require.NoError(t, err)
168168
require.NoError(t, osext.Chdir(normalpath.Unnormalize(normalpath.Join(pwd, "testdata/bufyaml/one/two/three/four"))))
@@ -196,7 +196,7 @@ func TestGetReadWriteBucketForOSParentPwd(t *testing.T) {
196196
func TestGetReadWriteBucketForOSAbsPwd(t *testing.T) {
197197
// Cannot be parallel since we chdir.
198198

199-
ctx := context.Background()
199+
ctx := t.Context()
200200
absDirPath, err := filepath.Abs(".")
201201
require.NoError(t, err)
202202
pwd, err := osext.Getwd()
@@ -231,7 +231,7 @@ func TestGetReadWriteBucketForOSAbsPwd(t *testing.T) {
231231

232232
func TestGetReadBucketCloserForOSProtoFileNoWorkspaceTerminateFileName(t *testing.T) {
233233
t.Parallel()
234-
ctx := context.Background()
234+
ctx := t.Context()
235235
readBucketCloser, bucketTargeting, err := getReadBucketCloserForOSProtoFile(
236236
ctx,
237237
slogtestext.NewLogger(t),
@@ -252,7 +252,7 @@ func TestGetReadBucketCloserForOSProtoFileNoWorkspaceTerminateFileName(t *testin
252252

253253
func TestGetReadBucketCloserForOSProtoFileTerminateFileName(t *testing.T) {
254254
t.Parallel()
255-
ctx := context.Background()
255+
ctx := t.Context()
256256
readBucketCloser, bucketTargeting, err := getReadBucketCloserForOSProtoFile(
257257
ctx,
258258
slogtestext.NewLogger(t),
@@ -277,7 +277,7 @@ func TestGetReadBucketCloserForOSProtoFileTerminateFileName(t *testing.T) {
277277
func TestGetReadBucketCloserForOSProtoFileParentPwd(t *testing.T) {
278278
// Cannot be parallel since we chdir.
279279

280-
ctx := context.Background()
280+
ctx := t.Context()
281281
pwd, err := osext.Getwd()
282282
require.NoError(t, err)
283283
require.NoError(t, osext.Chdir(normalpath.Unnormalize(normalpath.Join(pwd, "testdata/bufyaml/one/two/three/four"))))
@@ -312,7 +312,7 @@ func TestGetReadBucketCloserForOSProtoFileParentPwd(t *testing.T) {
312312
func TestGetReadBucketCloserForOSProtoFileAbsPwd(t *testing.T) {
313313
// Cannot be parallel since we chdir.
314314

315-
ctx := context.Background()
315+
ctx := t.Context()
316316
absDirPath, err := filepath.Abs(".")
317317
require.NoError(t, err)
318318
pwd, err := osext.Getwd()
@@ -348,7 +348,7 @@ func TestGetReadBucketCloserForOSProtoFileAbsPwd(t *testing.T) {
348348

349349
func TestGetReadBucketCloserForOSProtoFileNoBufYAMLTerminateFileName(t *testing.T) {
350350
t.Parallel()
351-
ctx := context.Background()
351+
ctx := t.Context()
352352
readBucketCloser, bucketTargeting, err := getReadBucketCloserForOSProtoFile(
353353
ctx,
354354
slogtestext.NewLogger(t),
@@ -370,7 +370,7 @@ func TestGetReadBucketCloserForOSProtoFileNoBufYAMLTerminateFileName(t *testing.
370370
func TestGetReadBucketCloserForOSProtoFileNoBufYAMLParentPwd(t *testing.T) {
371371
// Cannot be parallel since we chdir.
372372

373-
ctx := context.Background()
373+
ctx := t.Context()
374374
pwd, err := osext.Getwd()
375375
require.NoError(t, err)
376376
require.NoError(t, osext.Chdir(normalpath.Unnormalize(normalpath.Join(pwd, "testdata/nobufyaml/one/two/three/four"))))
@@ -406,7 +406,7 @@ func TestGetReadBucketCloserForOSProtoFileNoBufYAMLAbsPwd(t *testing.T) {
406406
// Cannot be parallel since we chdir.
407407
t.Skip()
408408

409-
ctx := context.Background()
409+
ctx := t.Context()
410410
absDirPath, err := filepath.Abs(".")
411411
require.NoError(t, err)
412412
pwd, err := osext.Getwd()

0 commit comments

Comments
 (0)