[short] skip # Test file ! go test p1_test.go stderr 'Logf format %d' go test -vet=off stdout '^ok' # Non-test file ! go test p1.go stderr 'Printf format %d' go test -x -vet=shift p1.go stderr '[\\/]vet.*-shift' stdout '\[no test files\]' go test -vet=off p1.go ! stderr '[\\/]vet.*-shift' stdout '\[no test files\]' # ensure all runs non-default vet ! go test -vet=all ./vetall/... stderr 'using resp before checking for errors' # Test issue #47309 ! go test -vet=bools,xyz ./vetall/... stderr '-vet argument must be a supported analyzer' # Test with a single analyzer ! go test -vet=httpresponse ./vetall/... stderr 'using resp before checking for errors' # Test with a list of analyzers go test -vet=atomic,bools,nilfunc ./vetall/... stdout 'm/vetall.*\[no tests to run\]' # Test issue #22890 go test m/vetcycle stdout 'm/vetcycle.*\[no test files\]' # Test with ... ! go test ./vetfail/... stderr 'Printf format %d' stdout 'ok\s+m/vetfail/p2' # Check there's no diagnosis of a bad build constraint in vetxonly mode. # Use -a so that we need to recompute the vet-specific export data for # vetfail/p1. go test -a m/vetfail/p2 ! stderr 'invalid.*constraint' -- go.mod -- module m go 1.16 -- p1_test.go -- package p import "testing" func Test(t *testing.T) { t.Logf("%d") // oops } -- p1.go -- package p import "fmt" func F() { fmt.Printf("%d") // oops } -- vetall/p.go -- package p import "net/http" func F() { resp, err := http.Head("example.com") defer resp.Body.Close() if err != nil { panic(err) } // (defer statement belongs here) } -- vetall/p_test.go -- package p -- vetcycle/p.go -- package p type ( _ interface{ m(B1) } A1 interface{ a(D1) } B1 interface{ A1 } C1 interface { B1 /* ERROR issue #18395 */ } D1 interface{ C1 } ) var _ A1 = C1 /* ERROR cannot use C1 */ (nil) -- vetfail/p1/p1.go -- // +build !foo-bar package p1 import "fmt" func F() { fmt.Printf("%d", "hello") // causes vet error } -- vetfail/p2/p2.go -- package p2 import _ "m/vetfail/p1" func F() { } -- vetfail/p2/p2_test.go -- package p2 import "testing" func TestF(t *testing.T) { F() }