env OLD=$PWD

# basic -C functionality
cd $GOROOT/src/math
go list -C ../strings
stdout strings
! go list -C ../nonexist
stderr 'chdir.*nonexist'

# check for -C in subcommands with custom flag parsing
# cmd/go/chdir_test.go handles the normal ones more directly.

# go doc
go doc -C ../strings HasPrefix

# go env
go env -C $OLD/custom GOMOD
stdout 'custom[\\/]go.mod'
! go env -C ../nonexist
stderr '^go: chdir ../nonexist: '

# go test
go test -C ../strings -n
stderr 'strings\.test'

# go vet
go vet -C ../strings -n
stderr strings_test

# go fix
go fix -C ../strings -n
stderr strings_test

# -C must be first on command line (as of Go 1.21)
! go test -n -C ../strings
stderr '^invalid value "../strings" for flag -C: -C flag must be first flag on command line$'

-- custom/go.mod --
module m
