[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()
}
