[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 vetcycle
stdout 'vetcycle.*\[no test files\]'

# Test with ...
! go test vetfail/...
stderr 'Printf format %d'
stdout 'ok\s+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 vetfail/p2
! stderr 'invalid.*constraint'

-- 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 _ "vetfail/p1"

func F() {
}
-- vetfail/p2/p2_test.go --
package p2

import "testing"

func TestF(t *testing.T) {
	F()
}
