Skip to content

Commit b550daf

Browse files
committed
lint: add support for errcheck
1 parent ae13910 commit b550daf

File tree

53 files changed

+149
-147
lines changed

Some content is hidden

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

53 files changed

+149
-147
lines changed

.golangci.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ linters:
1818
- errcheck # Errcheck is a program for checking for unchecked errors in go programs. These unchecked errors can be critical bugs in some cases [fast: false, auto-fix: false]
1919
- errchkjson # Checks types passed to the json encoding functions. Reports unsupported types and optionally reports occasions, where the check for the returned error can be omitted. [fast: false, auto-fix: false]
2020
- errname # Checks that sentinel errors are prefixed with the `Err` and error types are suffixed with the `Error`. [fast: false, auto-fix: false]
21+
- errorlint # errorlint is a linter for that can be used to find code that will cause problems with the error wrapping scheme introduced in Go 1.13. [fast: false, auto-fix: false]
2122
- exptostd # Detects functions from golang.org/x/exp/ that can be replaced by std functions. [auto-fix]
23+
- fatcontext # Detects nested contexts in loops and function literals. [auto-fix]
2224
- forbidigo # Forbids identifiers [fast: true, auto-fix: false]
2325
- gci # Gci controls golang package import order and makes it always deterministic. [fast: true, auto-fix: false]
2426
- gocheckcompilerdirectives # Checks that go compiler directive comments (//go:) are valid. [fast: true, auto-fix: false]
@@ -38,6 +40,7 @@ linters:
3840
- gosmopolitan # Report certain i18n/l10n anti-patterns in your Go codebase [fast: false, auto-fix: false]
3941
- govet #(vet, vetshadow): Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string [fast: false, auto-fix: false]
4042
- grouper # An analyzer to analyze expression groups. [fast: true, auto-fix: false]
43+
- iface # Detect the incorrect use of interfaces, helping developers avoid interface pollution. [auto-fix]
4144
- importas # Enforces consistent import aliases [fast: false, auto-fix: false]
4245
- ineffassign # Detects when assignments to existing variables are not used [fast: true, auto-fix: false]
4346
- intrange # intrange is a linter to find places where for loops could make use of an integer range. [fast: true, auto-fix: false]
@@ -86,7 +89,6 @@ linters:
8689
- depguard # Go linter that checks if package imports are in a list of acceptable packages [fast: true, auto-fix: false]
8790
- dupl # Tool for code clone detection [fast: true, auto-fix: false]
8891
- err113 # Golang linter to check the errors handling expressions [fast: false, auto-fix: false]
89-
- errorlint # errorlint is a linter for that can be used to find code that will cause problems with the error wrapping scheme introduced in Go 1.13. [fast: false, auto-fix: false]
9092
- exhaustive # check exhaustiveness of enum switch statements [fast: false, auto-fix: false]
9193
- forcetypeassert # finds forced type assertions [fast: true, auto-fix: false]
9294
- funlen # Tool for detection of long functions [fast: true, auto-fix: false]

internal/acctest/checks.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func CheckResourceAttrFunc(name string, key string, test func(string) error) res
9090
}
9191
err := test(value)
9292
if err != nil {
93-
return fmt.Errorf("test for %s %s did not pass test: %s", name, key, err)
93+
return fmt.Errorf("test for %s %s did not pass test: %w", name, key, err)
9494
}
9595

9696
return nil

internal/meta/meta.go

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

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"net/http"
78
"os"
@@ -155,10 +156,9 @@ func customizeUserAgent(providerVersion string, terraformVersion string) string
155156
func loadProfile(ctx context.Context, d *schema.ResourceData) (*scw.Profile, *CredentialsSource, error) {
156157
config, err := scw.LoadConfig()
157158
// If the config file do not exist, don't return an error as we may find config in ENV or flags.
158-
if _, isNotFoundError := err.(*scw.ConfigFileNotFoundError); isNotFoundError {
159+
var configFileNotFoundError *scw.ConfigFileNotFoundError
160+
if errors.As(err, &configFileNotFoundError) {
159161
config = &scw.Config{}
160-
} else if err != nil {
161-
return nil, nil, err
162162
}
163163

164164
// By default we set default zone and region to fr-par

internal/services/applesilicon/testfuncs/sweep.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func testSweepAppleSiliconServer(_ string) error {
2323
logging.L.Debugf("sweeper: destroying the apple silicon instance in (%s)", zone)
2424
listServers, err := asAPI.ListServers(&applesiliconSDK.ListServersRequest{Zone: zone}, scw.WithAllPages())
2525
if err != nil {
26-
return fmt.Errorf("error listing apple silicon servers in (%s) in sweeper: %s", zone, err)
26+
return fmt.Errorf("error listing apple silicon servers in (%s) in sweeper: %w", zone, err)
2727
}
2828

2929
for _, server := range listServers.Servers {
@@ -32,7 +32,7 @@ func testSweepAppleSiliconServer(_ string) error {
3232
Zone: zone,
3333
})
3434
if errDelete != nil {
35-
return fmt.Errorf("error deleting apple silicon server in sweeper: %s", err)
35+
return fmt.Errorf("error deleting apple silicon server in sweeper: %w", err)
3636
}
3737
}
3838

internal/services/baremetal/testfuncs/sweep.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func testSweepServer(_ string) error {
3434
ServerID: server.ID,
3535
})
3636
if err != nil {
37-
return fmt.Errorf("error deleting server in sweeper: %s", err)
37+
return fmt.Errorf("error deleting server in sweeper: %w", err)
3838
}
3939
}
4040

internal/services/block/testfuncs/sweep.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func testSweepBlockVolume(_ string) error {
3030
Zone: zone,
3131
}, scw.WithAllPages())
3232
if err != nil {
33-
return fmt.Errorf("error listing volume in (%s) in sweeper: %s", zone, err)
33+
return fmt.Errorf("error listing volume in (%s) in sweeper: %w", zone, err)
3434
}
3535

3636
for _, volume := range listVolumes.Volumes {
@@ -41,7 +41,7 @@ func testSweepBlockVolume(_ string) error {
4141
if err != nil {
4242
logging.L.Debugf("sweeper: error (%s)", err)
4343

44-
return fmt.Errorf("error deleting volume in sweeper: %s", err)
44+
return fmt.Errorf("error deleting volume in sweeper: %w", err)
4545
}
4646
}
4747

@@ -58,7 +58,7 @@ func testSweepSnapshot(_ string) error {
5858
Zone: zone,
5959
}, scw.WithAllPages())
6060
if err != nil {
61-
return fmt.Errorf("error listing snapshot in (%s) in sweeper: %s", zone, err)
61+
return fmt.Errorf("error listing snapshot in (%s) in sweeper: %w", zone, err)
6262
}
6363

6464
for _, snapshot := range listSnapshots.Snapshots {
@@ -69,7 +69,7 @@ func testSweepSnapshot(_ string) error {
6969
if err != nil {
7070
logging.L.Debugf("sweeper: error (%s)", err)
7171

72-
return fmt.Errorf("error deleting snapshot in sweeper: %s", err)
72+
return fmt.Errorf("error deleting snapshot in sweeper: %w", err)
7373
}
7474
}
7575

internal/services/container/testfuncs/checks.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func TestConfigContainerNamespace(tt *acctest.TestTools, n string) resource.Test
4343
Region: region,
4444
})
4545
if err != nil {
46-
return fmt.Errorf("error waiting namespace: %v", err)
46+
return fmt.Errorf("error waiting namespace: %w", err)
4747
}
4848

4949
meta := tt.Meta
@@ -59,20 +59,20 @@ func TestConfigContainerNamespace(tt *acctest.TestTools, n string) resource.Test
5959

6060
cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
6161
if err != nil {
62-
return fmt.Errorf("could not connect to Docker: %v", err)
62+
return fmt.Errorf("could not connect to Docker: %w", err)
6363
}
6464

6565
encodedJSON, err := json.Marshal(authConfig)
6666
if err != nil {
67-
return fmt.Errorf("could not marshal auth config: %v", err)
67+
return fmt.Errorf("could not marshal auth config: %w", err)
6868
}
6969

7070
ctx := context.Background()
7171
authStr := base64.URLEncoding.EncodeToString(encodedJSON)
7272

7373
out, err := cli.ImagePull(ctx, testDockerIMG, image.PullOptions{})
7474
if err != nil {
75-
return fmt.Errorf("could not pull image: %v", err)
75+
return fmt.Errorf("could not pull image: %w", err)
7676
}
7777

7878
defer out.Close()
@@ -85,7 +85,7 @@ func TestConfigContainerNamespace(tt *acctest.TestTools, n string) resource.Test
8585
}
8686
err = json.Unmarshal(streamBytes, &errorMessage)
8787
if err != nil {
88-
return fmt.Errorf("could not unmarshal: %v", err)
88+
return fmt.Errorf("could not unmarshal: %w", err)
8989
}
9090

9191
if errorMessage.Error != "" {
@@ -98,12 +98,12 @@ func TestConfigContainerNamespace(tt *acctest.TestTools, n string) resource.Test
9898

9999
err = cli.ImageTag(ctx, imageTag, scwTag)
100100
if err != nil {
101-
return fmt.Errorf("could not tag image: %v", err)
101+
return fmt.Errorf("could not tag image: %w", err)
102102
}
103103

104104
pusher, err := cli.ImagePush(ctx, scwTag, image.PushOptions{RegistryAuth: authStr})
105105
if err != nil {
106-
return fmt.Errorf("could not push image: %v", err)
106+
return fmt.Errorf("could not push image: %w", err)
107107
}
108108

109109
defer pusher.Close()
@@ -116,7 +116,7 @@ func TestConfigContainerNamespace(tt *acctest.TestTools, n string) resource.Test
116116
}
117117
err = json.Unmarshal(streamBytes, &errorMessage)
118118
if err != nil {
119-
return fmt.Errorf("could not unmarshal: %v", err)
119+
return fmt.Errorf("could not unmarshal: %w", err)
120120
}
121121

122122
if errorMessage.Error != "" {
@@ -129,7 +129,7 @@ func TestConfigContainerNamespace(tt *acctest.TestTools, n string) resource.Test
129129
Region: region,
130130
})
131131
if err != nil {
132-
return fmt.Errorf("error waiting namespace: %v", err)
132+
return fmt.Errorf("error waiting namespace: %w", err)
133133
}
134134

135135
return nil

internal/services/container/testfuncs/sweep.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func testSweepTrigger(_ string) error {
3535
Region: region,
3636
}, scw.WithAllPages())
3737
if err != nil {
38-
return fmt.Errorf("error listing trigger in (%s) in sweeper: %s", region, err)
38+
return fmt.Errorf("error listing trigger in (%s) in sweeper: %w", region, err)
3939
}
4040

4141
for _, trigger := range listTriggers.Triggers {
@@ -46,7 +46,7 @@ func testSweepTrigger(_ string) error {
4646
if err != nil {
4747
logging.L.Debugf("sweeper: error (%s)", err)
4848

49-
return fmt.Errorf("error deleting trigger in sweeper: %s", err)
49+
return fmt.Errorf("error deleting trigger in sweeper: %w", err)
5050
}
5151
}
5252

@@ -63,7 +63,7 @@ func testSweepContainer(_ string) error {
6363
Region: region,
6464
}, scw.WithAllPages())
6565
if err != nil {
66-
return fmt.Errorf("error listing containers in (%s) in sweeper: %s", region, err)
66+
return fmt.Errorf("error listing containers in (%s) in sweeper: %w", region, err)
6767
}
6868

6969
for _, cont := range listNamespaces.Containers {
@@ -74,7 +74,7 @@ func testSweepContainer(_ string) error {
7474
if err != nil {
7575
logging.L.Debugf("sweeper: error (%s)", err)
7676

77-
return fmt.Errorf("error deleting container in sweeper: %s", err)
77+
return fmt.Errorf("error deleting container in sweeper: %w", err)
7878
}
7979
}
8080

@@ -91,7 +91,7 @@ func testSweepNamespace(_ string) error {
9191
Region: region,
9292
}, scw.WithAllPages())
9393
if err != nil {
94-
return fmt.Errorf("error listing namespaces in (%s) in sweeper: %s", region, err)
94+
return fmt.Errorf("error listing namespaces in (%s) in sweeper: %w", region, err)
9595
}
9696

9797
for _, ns := range listNamespaces.Namespaces {
@@ -102,7 +102,7 @@ func testSweepNamespace(_ string) error {
102102
if err != nil {
103103
logging.L.Debugf("sweeper: error (%s)", err)
104104

105-
return fmt.Errorf("error deleting namespace in sweeper: %s", err)
105+
return fmt.Errorf("error deleting namespace in sweeper: %w", err)
106106
}
107107
}
108108

internal/services/flexibleip/testfuncs/sweep.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func testSweepFlexibleIP(_ string) error {
3434
Zone: zone,
3535
})
3636
if err != nil {
37-
return fmt.Errorf("error deleting ip in sweeper: %s", err)
37+
return fmt.Errorf("error deleting ip in sweeper: %w", err)
3838
}
3939
}
4040

internal/services/function/testfuncs/sweep.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func testSweepFunctionTrigger(_ string) error {
3939
Region: region,
4040
}, scw.WithAllPages())
4141
if err != nil {
42-
return fmt.Errorf("error listing trigger in (%s) in sweeper: %s", region, err)
42+
return fmt.Errorf("error listing trigger in (%s) in sweeper: %w", region, err)
4343
}
4444

4545
for _, trigger := range listTriggers.Triggers {
@@ -50,7 +50,7 @@ func testSweepFunctionTrigger(_ string) error {
5050
if err != nil {
5151
logging.L.Debugf("sweeper: error (%s)", err)
5252

53-
return fmt.Errorf("error deleting trigger in sweeper: %s", err)
53+
return fmt.Errorf("error deleting trigger in sweeper: %w", err)
5454
}
5555
}
5656

@@ -67,7 +67,7 @@ func testSweepFunctionNamespace(_ string) error {
6767
Region: region,
6868
}, scw.WithAllPages())
6969
if err != nil {
70-
return fmt.Errorf("error listing namespaces in (%s) in sweeper: %s", region, err)
70+
return fmt.Errorf("error listing namespaces in (%s) in sweeper: %w", region, err)
7171
}
7272

7373
for _, ns := range listNamespaces.Namespaces {
@@ -78,7 +78,7 @@ func testSweepFunctionNamespace(_ string) error {
7878
if err != nil {
7979
logging.L.Debugf("sweeper: error (%s)", err)
8080

81-
return fmt.Errorf("error deleting namespace in sweeper: %s", err)
81+
return fmt.Errorf("error deleting namespace in sweeper: %w", err)
8282
}
8383
}
8484

@@ -95,7 +95,7 @@ func testSweepFunction(_ string) error {
9595
Region: region,
9696
}, scw.WithAllPages())
9797
if err != nil {
98-
return fmt.Errorf("error listing functions in (%s) in sweeper: %s", region, err)
98+
return fmt.Errorf("error listing functions in (%s) in sweeper: %w", region, err)
9999
}
100100

101101
for _, f := range listFunctions.Functions {
@@ -106,7 +106,7 @@ func testSweepFunction(_ string) error {
106106
if err != nil && !httperrors.Is404(err) {
107107
logging.L.Debugf("sweeper: error (%s)", err)
108108

109-
return fmt.Errorf("error deleting functions in sweeper: %s", err)
109+
return fmt.Errorf("error deleting functions in sweeper: %w", err)
110110
}
111111
}
112112

@@ -123,7 +123,7 @@ func testSweepFunctionCron(_ string) error {
123123
Region: region,
124124
}, scw.WithAllPages())
125125
if err != nil {
126-
return fmt.Errorf("error listing cron in (%s) in sweeper: %s", region, err)
126+
return fmt.Errorf("error listing cron in (%s) in sweeper: %w", region, err)
127127
}
128128

129129
for _, cron := range listCron.Crons {
@@ -134,7 +134,7 @@ func testSweepFunctionCron(_ string) error {
134134
if err != nil {
135135
logging.L.Debugf("sweeper: error (%s)", err)
136136

137-
return fmt.Errorf("error deleting cron in sweeper: %s", err)
137+
return fmt.Errorf("error deleting cron in sweeper: %w", err)
138138
}
139139
}
140140

0 commit comments

Comments
 (0)