diff options
| author | Taras Madan <tarasmadan@google.com> | 2025-01-22 16:07:17 +0100 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2025-01-23 10:42:36 +0000 |
| commit | 7b4377ad9d8a7205416df8d6217ef2b010f89481 (patch) | |
| tree | e6fec4fd12ff807a16d847923f501075bf71d16c /vendor/github.com/moricho | |
| parent | 475a4c203afb8b7d3af51c4fd32bb170ff32a45e (diff) | |
vendor: delete
Diffstat (limited to 'vendor/github.com/moricho')
| -rw-r--r-- | vendor/github.com/moricho/tparallel/.gitignore | 3 | ||||
| -rw-r--r-- | vendor/github.com/moricho/tparallel/.goreleaser.yaml | 58 | ||||
| -rw-r--r-- | vendor/github.com/moricho/tparallel/LICENSE | 21 | ||||
| -rw-r--r-- | vendor/github.com/moricho/tparallel/Makefile | 13 | ||||
| -rw-r--r-- | vendor/github.com/moricho/tparallel/README.md | 112 | ||||
| -rw-r--r-- | vendor/github.com/moricho/tparallel/pkg/ssafunc/ssafunc.go | 34 | ||||
| -rw-r--r-- | vendor/github.com/moricho/tparallel/pkg/ssainstr/ssainstr.go | 63 | ||||
| -rw-r--r-- | vendor/github.com/moricho/tparallel/testmap.go | 67 | ||||
| -rw-r--r-- | vendor/github.com/moricho/tparallel/tparallel.go | 72 |
9 files changed, 0 insertions, 443 deletions
diff --git a/vendor/github.com/moricho/tparallel/.gitignore b/vendor/github.com/moricho/tparallel/.gitignore deleted file mode 100644 index 71342280e..000000000 --- a/vendor/github.com/moricho/tparallel/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/tparallel -.envrc -/dist diff --git a/vendor/github.com/moricho/tparallel/.goreleaser.yaml b/vendor/github.com/moricho/tparallel/.goreleaser.yaml deleted file mode 100644 index 5349004c5..000000000 --- a/vendor/github.com/moricho/tparallel/.goreleaser.yaml +++ /dev/null @@ -1,58 +0,0 @@ -project_name: tparallel - -before: - hooks: - - go mod tidy - -builds: - - main: ./cmd/tparallel - binary: tparallel - ldflags: - - -s -w - - -X main.Version={{.Version}} - - -X main.Revision={{.ShortCommit}} - env: - - CGO_ENABLED=0 - goos: - - linux - - windows - - darwin - -archives: - - format: tar.gz - name_template: >- - {{- .ProjectName }}_ - {{- title .Os }}_ - {{- if eq .Arch "amd64" }}x86_64 - {{- else if eq .Arch "386" }}i386 - {{- else }}{{ .Arch }}{{ end }} - {{- if .Arm }}v{{ .Arm }}{{ end -}} - - format_overrides: - - goos: windows - format: zip - -checksum: - name_template: 'checksums.txt' -snapshot: - name_template: "{{ incpatch .Version }}-next" -changelog: - sort: asc - filters: - exclude: - - '^docs:' - - '^test:' - -release: - prerelease: auto - -brews: - - repository: - owner: moricho - name: homebrew-tparallel - homepage: https://github.com/moricho/tparallel - description: tparallel detects inappropriate usage of t.Parallel() method in your Go test codes - install: | - bin.install "tparallel" - test: | - system "#{bin}/tparallel help" diff --git a/vendor/github.com/moricho/tparallel/LICENSE b/vendor/github.com/moricho/tparallel/LICENSE deleted file mode 100644 index 4f029982f..000000000 --- a/vendor/github.com/moricho/tparallel/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 moricho - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/vendor/github.com/moricho/tparallel/Makefile b/vendor/github.com/moricho/tparallel/Makefile deleted file mode 100644 index fb3588069..000000000 --- a/vendor/github.com/moricho/tparallel/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -all: build - -.PHONY: build -build: - go build -o tparallel ./cmd/tparallel - -.PHONY: build_race -build_race: - go build -race -o tparallel ./cmd/tparallel - -.PHONY: test -test: build_race - go test -v ./... diff --git a/vendor/github.com/moricho/tparallel/README.md b/vendor/github.com/moricho/tparallel/README.md deleted file mode 100644 index c4f1efd01..000000000 --- a/vendor/github.com/moricho/tparallel/README.md +++ /dev/null @@ -1,112 +0,0 @@ -# tparallel - -[](https://github.com/moricho/tparallel/actions) -[](https://goreportcard.com/report/github.com/moricho/tparallel) -[](LICENSE) - -`tparallel` finds inappropriate usage of `t.Parallel()` method in your Go test codes. -It detects the following: - -- `t.Parallel()` is called in either a top-level test function or a sub-test function only -- Although `t.Parallel()` is called in the sub-test function, it is post-processed by `defer` instead of `t.Cleanup()` - -This tool was inspired by this blog: [Test parallelization in Go: Understanding the t.Parallel() method](https://engineering.mercari.com/en/blog/entry/20220408-how_to_use_t_parallel/) - -## Installation - -### From GitHub Releases - -Please see [GitHub Releases](https://github.com/moricho/tparallel/releases). -Available binaries are: - -- macOS -- Linux -- Windows - -### macOS - -```sh -$ brew tap moricho/tparallel -$ brew install tparallel -``` - -### go get - -```sh -$ go get -u github.com/moricho/tparallel/cmd/tparallel -``` - -## Usage - -### golangci-lint - -[golangci-lint](https://github.com/golangci/golangci-lint) now supports `tparallel`, so you can enable this linter and use in it. - -### shell - -```sh -$ go vet -vettool=`which tparallel` <pkgname> -``` - -## Example - -```go -package sample - -import ( - "testing" -) - -func Test_Table1(t *testing.T) { - teardown := setup("Test_Table1") - defer teardown() - - tests := []struct { - name string - }{ - { - name: "Table1_Sub1", - }, - { - name: "Table1_Sub2", - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - t.Parallel() - call(tt.name) - }) - } -} - -func Test_Table2(t *testing.T) { - teardown := setup("Test_Table2") - t.Cleanup(teardown) - t.Parallel() - - tests := []struct { - name string - }{ - { - name: "Table2_Sub1", - }, - { - name: "Table2_Sub2", - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - call(tt.name) - }) - } -} -``` - -```console -# github.com/moricho/tparallel/testdata/src/sample -testdata/src/sample/table_test.go:7:6: Test_Table1 should use t.Cleanup -testdata/src/sample/table_test.go:7:6: Test_Table1 should call t.Parallel on the top level as well as its subtests -testdata/src/sample/table_test.go:30:6: Test_Table2's subtests should call t.Parallel -``` diff --git a/vendor/github.com/moricho/tparallel/pkg/ssafunc/ssafunc.go b/vendor/github.com/moricho/tparallel/pkg/ssafunc/ssafunc.go deleted file mode 100644 index 5a8e637bd..000000000 --- a/vendor/github.com/moricho/tparallel/pkg/ssafunc/ssafunc.go +++ /dev/null @@ -1,34 +0,0 @@ -package ssafunc - -import ( - "go/types" - - "github.com/gostaticanalysis/analysisutil" - "github.com/moricho/tparallel/pkg/ssainstr" - "golang.org/x/tools/go/ssa" -) - -// IsDeferCalled returns whether the given ssa.Function calls `defer` -func IsDeferCalled(f *ssa.Function) bool { - for _, block := range f.Blocks { - for _, instr := range block.Instrs { - switch instr.(type) { - case *ssa.Defer: - return true - } - } - } - return false -} - -// IsCalled returns whether the given ssa.Function calls `fn` func -func IsCalled(f *ssa.Function, fn *types.Func) bool { - block := f.Blocks[0] - for _, instr := range block.Instrs { - called := analysisutil.Called(instr, nil, fn) - if _, ok := ssainstr.LookupCalled(instr, fn); ok || called { - return true - } - } - return false -} diff --git a/vendor/github.com/moricho/tparallel/pkg/ssainstr/ssainstr.go b/vendor/github.com/moricho/tparallel/pkg/ssainstr/ssainstr.go deleted file mode 100644 index 374553f5e..000000000 --- a/vendor/github.com/moricho/tparallel/pkg/ssainstr/ssainstr.go +++ /dev/null @@ -1,63 +0,0 @@ -package ssainstr - -import ( - "go/types" - - "github.com/gostaticanalysis/analysisutil" - "golang.org/x/tools/go/ssa" -) - -// LookupCalled looks up ssa.Instruction that call the `fn` func in the given instr -func LookupCalled(instr ssa.Instruction, fn *types.Func) ([]ssa.Instruction, bool) { - instrs := []ssa.Instruction{} - - call, ok := instr.(ssa.CallInstruction) - if !ok { - return instrs, false - } - - ssaCall := call.Value() - if ssaCall == nil { - return instrs, false - } - common := ssaCall.Common() - if common == nil { - return instrs, false - } - val := common.Value - - called := false - switch fnval := val.(type) { - case *ssa.Function: - for _, block := range fnval.Blocks { - for _, instr := range block.Instrs { - if analysisutil.Called(instr, nil, fn) { - called = true - instrs = append(instrs, instr) - } - } - } - } - - return instrs, called -} - -// HasArgs returns whether the given ssa.Instruction has `typ` type args -func HasArgs(instr ssa.Instruction, typ types.Type) bool { - call, ok := instr.(ssa.CallInstruction) - if !ok { - return false - } - - ssaCall := call.Value() - if ssaCall == nil { - return false - } - - for _, arg := range ssaCall.Call.Args { - if types.Identical(arg.Type(), typ) { - return true - } - } - return false -} diff --git a/vendor/github.com/moricho/tparallel/testmap.go b/vendor/github.com/moricho/tparallel/testmap.go deleted file mode 100644 index fd6a3b432..000000000 --- a/vendor/github.com/moricho/tparallel/testmap.go +++ /dev/null @@ -1,67 +0,0 @@ -package tparallel - -import ( - "go/types" - "strings" - - "github.com/gostaticanalysis/analysisutil" - "golang.org/x/tools/go/analysis/passes/buildssa" - "golang.org/x/tools/go/ssa" - - "github.com/moricho/tparallel/pkg/ssainstr" -) - -// getTestMap gets a set of a top-level test and its sub-tests -func getTestMap(ssaanalyzer *buildssa.SSA, testTyp types.Type) map[*ssa.Function][]*ssa.Function { - testMap := map[*ssa.Function][]*ssa.Function{} - - trun := analysisutil.MethodOf(testTyp, "Run") - for _, f := range ssaanalyzer.SrcFuncs { - if !strings.HasPrefix(f.Name(), "Test") || !(f.Parent() == (*ssa.Function)(nil)) { - continue - } - testMap[f] = []*ssa.Function{} - for _, block := range f.Blocks { - for _, instr := range block.Instrs { - called := analysisutil.Called(instr, nil, trun) - - if !called && ssainstr.HasArgs(instr, types.NewPointer(testTyp)) { - if instrs, ok := ssainstr.LookupCalled(instr, trun); ok { - for _, v := range instrs { - testMap[f] = appendTestMap(testMap[f], v) - } - } - } else if called { - testMap[f] = appendTestMap(testMap[f], instr) - } - } - } - } - - return testMap -} - -// appendTestMap converts ssa.Instruction to ssa.Function and append it to a given sub-test slice -func appendTestMap(subtests []*ssa.Function, instr ssa.Instruction) []*ssa.Function { - call, ok := instr.(ssa.CallInstruction) - if !ok { - return subtests - } - - ssaCall := call.Value() - if ssaCall == nil { - return subtests - } - - for _, arg := range ssaCall.Call.Args { - switch arg := arg.(type) { - case *ssa.Function: - subtests = append(subtests, arg) - case *ssa.MakeClosure: - fn, _ := arg.Fn.(*ssa.Function) - subtests = append(subtests, fn) - } - } - - return subtests -} diff --git a/vendor/github.com/moricho/tparallel/tparallel.go b/vendor/github.com/moricho/tparallel/tparallel.go deleted file mode 100644 index 3139e0425..000000000 --- a/vendor/github.com/moricho/tparallel/tparallel.go +++ /dev/null @@ -1,72 +0,0 @@ -package tparallel - -import ( - "go/types" - - "github.com/gostaticanalysis/analysisutil" - "golang.org/x/tools/go/analysis" - "golang.org/x/tools/go/analysis/passes/buildssa" - - "github.com/moricho/tparallel/pkg/ssafunc" -) - -const doc = "tparallel detects inappropriate usage of t.Parallel() method in your Go test codes." - -// Analyzer analyzes Go test codes whether they use t.Parallel() appropriately -// by using SSA (Single Static Assignment) -var Analyzer = &analysis.Analyzer{ - Name: "tparallel", - Doc: doc, - Run: run, - Requires: []*analysis.Analyzer{ - buildssa.Analyzer, - }, -} - -func run(pass *analysis.Pass) (interface{}, error) { - ssaanalyzer := pass.ResultOf[buildssa.Analyzer].(*buildssa.SSA) - - obj := analysisutil.ObjectOf(pass, "testing", "T") - if obj == nil { - // skip checking - return nil, nil - } - testTyp, testPkg := obj.Type(), obj.Pkg() - - p, _, _ := types.LookupFieldOrMethod(testTyp, true, testPkg, "Parallel") - parallel, _ := p.(*types.Func) - c, _, _ := types.LookupFieldOrMethod(testTyp, true, testPkg, "Cleanup") - cleanup, _ := c.(*types.Func) - - testMap := getTestMap(ssaanalyzer, testTyp) // ex. {Test1: [TestSub1, TestSub2], Test2: [TestSub1, TestSub2, TestSub3], ...} - for top, subs := range testMap { - if len(subs) == 0 { - continue - } - isParallelTop := ssafunc.IsCalled(top, parallel) - isPararellSub := false - for _, sub := range subs { - isPararellSub = ssafunc.IsCalled(sub, parallel) - if isPararellSub { - break - } - } - - if ssafunc.IsDeferCalled(top) { - useCleanup := ssafunc.IsCalled(top, cleanup) - if isPararellSub && !useCleanup { - pass.Reportf(top.Pos(), "%s should use t.Cleanup instead of defer", top.Name()) - } - } - - if isParallelTop == isPararellSub { - continue - } else if isPararellSub { - pass.Reportf(top.Pos(), "%s should call t.Parallel on the top level as well as its subtests", top.Name()) - } else if isParallelTop { - pass.Reportf(top.Pos(), "%s's subtests should call t.Parallel", top.Name()) - } - } - - return nil, nil -} |
