[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\]' # 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 } -- 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() }