diff options
| author | Taras Madan <tarasmadan@google.com> | 2022-09-05 14:27:54 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-05 12:27:54 +0000 |
| commit | b2f2446b46bf02821d90ebedadae2bf7ae0e880e (patch) | |
| tree | 923cf42842918d6bebca1d6bbdc08abed54d274d /vendor/github.com/maratori | |
| parent | e6654faff4bcca4be92e9a8596fd4b77f747c39e (diff) | |
go.mod, vendor: update (#3358)
* go.mod, vendor: remove unnecessary dependencies
Commands:
1. go mod tidy
2. go mod vendor
* go.mod, vendor: update cloud.google.com/go
Commands:
1. go get -u cloud.google.com/go
2. go mod tidy
3. go mod vendor
* go.mod, vendor: update cloud.google.com/*
Commands:
1. go get -u cloud.google.com/storage cloud.google.com/logging
2. go mod tidy
3. go mod vendor
* go.mod, .golangci.yml, vendor: update *lint*
Commands:
1. go get -u golang.org/x/tools github.com/golangci/golangci-lint@v1.47.0
2. go mod tidy
3. go mod vendor
4. edit .golangci.yml to suppress new errors (resolved in the same PR later)
* all: fix lint errors
hash.go: copy() recommended by gosimple
parse.go: ent is never nil
verifier.go: signal.Notify() with unbuffered channel is bad. Have no idea why.
* .golangci.yml: adjust godot rules
check-all is deprecated, but still work
if you're hesitating too - I'll remove this commit
Diffstat (limited to 'vendor/github.com/maratori')
| -rw-r--r-- | vendor/github.com/maratori/testpackage/pkg/testpackage/testpackage.go | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/vendor/github.com/maratori/testpackage/pkg/testpackage/testpackage.go b/vendor/github.com/maratori/testpackage/pkg/testpackage/testpackage.go index cad24e1a5..2e0572972 100644 --- a/vendor/github.com/maratori/testpackage/pkg/testpackage/testpackage.go +++ b/vendor/github.com/maratori/testpackage/pkg/testpackage/testpackage.go @@ -5,6 +5,8 @@ import ( "regexp" "strings" + "go/ast" + "golang.org/x/tools/go/analysis" ) @@ -14,20 +16,43 @@ const ( SkipRegexpFlagDefault = `(export|internal)_test\.go` ) -// NewAnalyzer returns Analyzer that makes you use a separate _test package +const ( + AllowPackagesFlagName = "allow-packages" + AllowPackagesFlagUsage = `comma separated list of packages that don't end with _test that tests are allowed to be in` + AllowPackagesFlagDefault = `main` +) + +func processTestFile(pass *analysis.Pass, f *ast.File, allowedPackages []string) { + packageName := f.Name.Name + + for _, p := range allowedPackages { + if p == packageName { + return + } + } + + if !strings.HasSuffix(packageName, "_test") { + pass.Reportf(f.Name.Pos(), "package should be `%s_test` instead of `%s`", packageName, packageName) + } +} + +// NewAnalyzer returns Analyzer that makes you use a separate _test package. func NewAnalyzer() *analysis.Analyzer { var ( - skipFileRegexp = SkipRegexpFlagDefault - fs flag.FlagSet + skipFileRegexp = SkipRegexpFlagDefault + allowPackagesStr = AllowPackagesFlagDefault + fs flag.FlagSet ) fs.StringVar(&skipFileRegexp, SkipRegexpFlagName, skipFileRegexp, SkipRegexpFlagUsage) + fs.StringVar(&allowPackagesStr, AllowPackagesFlagName, allowPackagesStr, AllowPackagesFlagUsage) return &analysis.Analyzer{ Name: "testpackage", Doc: "linter that makes you use a separate _test package", Flags: fs, Run: func(pass *analysis.Pass) (interface{}, error) { + allowedPackages := strings.Split(allowPackagesStr, ",") skipFile, err := regexp.Compile(skipFileRegexp) if err != nil { return nil, err @@ -35,16 +60,11 @@ func NewAnalyzer() *analysis.Analyzer { for _, f := range pass.Files { fileName := pass.Fset.Position(f.Pos()).Filename - if skipFile.MatchString(fileName) { + if !strings.HasSuffix(fileName, "_test.go") || skipFile.MatchString(fileName) { continue } - if strings.HasSuffix(fileName, "_test.go") { - packageName := f.Name.Name - if !strings.HasSuffix(packageName, "_test") { - pass.Reportf(f.Name.Pos(), "package should be `%s_test` instead of `%s`", packageName, packageName) - } - } + processTestFile(pass, f, allowedPackages) } return nil, nil |
