mirror of
https://github.com/1f349/dendrite.git
synced 2025-03-29 07:15:04 +00:00
* Update gometalinter config gometalinter now uses `maligned` instead of `aligncheck` (https://github.com/alecthomas/gometalinter/pull/367), so we need to update our config accordingly. * Update gometalinter * Disable gotype linter gotype does not seem to play nicely with the gb vendor directory. In particular, it wants each of our dependencies to be built and installed (see https://github.com/golang/go/issues/10969), but (empirically) it will not accept them being installed in `pkg` but insists on them being in `vendor/pkg`. This presents a problem because `gb build` builds the packages into `pkg` (which doesn't seem entirely unreasonable since `.` comes before `vendor` in `$GOPATH`). `go install github.com/x/y` does install in `vendor/pkg` but requires us to know the name of each package. The general conclusion of https://github.com/alecthomas/gometalinter/issues/91 seems to have been that the easiest thing to do is to disable `gotype` for now. * Fix `unparam` lint * Fix goshadow lint
31 lines
804 B
Go
31 lines
804 B
Go
package regressiontests
|
|
|
|
import "testing"
|
|
|
|
func TestGoSimple(t *testing.T) {
|
|
t.Parallel()
|
|
source := `package test
|
|
|
|
func a(ok bool, ch chan bool) {
|
|
select {
|
|
case <- ch:
|
|
}
|
|
|
|
for {
|
|
select {
|
|
case <- ch:
|
|
}
|
|
}
|
|
|
|
if ok == true {
|
|
}
|
|
}
|
|
`
|
|
expected := Issues{
|
|
{Linter: "gosimple", Severity: "warning", Path: "test.go", Line: 4, Col: 2, Message: "should use a simple channel send/receive instead of select with a single case (S1000)"},
|
|
{Linter: "gosimple", Severity: "warning", Path: "test.go", Line: 8, Col: 2, Message: "should use for range instead of for { select {} } (S1000)"},
|
|
{Linter: "gosimple", Severity: "warning", Path: "test.go", Line: 14, Col: 5, Message: "should omit comparison to bool constant, can be simplified to ok (S1002)"},
|
|
}
|
|
ExpectIssues(t, "gosimple", source, expected)
|
|
}
|