env GO111MODULE=on

[short] skip

# Arguments after the flag terminator should be ignored.
# If we pass '-- -test.v', we should not get verbose output
# *and* output from the test should not be echoed.
go test ./x -- -test.v
stdout '\Aok\s+example.com/x\s+[0-9.s]+\n\z'
! stderr .

# For backward-compatibility with previous releases of the 'go' command,
# arguments that appear after unrecognized flags should not be treated
# as packages, even if they are unambiguously not arguments to flags.
# Even though ./x looks like a package path, the real package should be
# the implicit '.'.
! go test --answer=42 ./x
stderr '^no Go files in '$PWD'$'

# However, *flags* that appear after unrecognized flags should still be
# interpreted as flags, under the (possibly-erroneous) assumption that
# unrecognized flags are non-boolean.

go test -v -x ./x -timeout 24h -boolflag=true foo -timeout 25h
stdout 'args: foo -timeout 25h'
stdout 'timeout: 24h0m0s$'  # -timeout is unambiguously not a flag, so the real flag wins.

go test -v -x ./x -timeout 24h -boolflag foo -timeout 25h
stdout 'args: foo -test\.timeout=25h0m0s'  # For legacy reasons, '-timeout ' is erroneously rewritten to -test.timeout; see https://golang.org/issue/40763.
stdout 'timeout: 24h0m0s$'  # Actual flag wins.

go test -v -x ./x -timeout 24h -stringflag foo -timeout 25h
stdout 'args: $'
stdout 'timeout: 25h0m0s$'  # Later flag wins.

# An explicit '-outputdir=' argument should set test.outputdir
# to the 'go' command's working directory, not zero it out
# for the test binary.
go test -x -coverprofile=cover.out '-outputdir=' ./x
stderr '-test.outputdir=[^ ]'
exists ./cover.out
! exists ./x/cover.out

# Test flags from GOFLAGS should be forwarded to the test binary,
# with the 'test.' prefix in the GOFLAGS entry...
env GOFLAGS='-test.timeout=24h0m0s -count=1'
go test -v -x ./x
stdout 'timeout: 24h0m0s$'
stderr '-test.count=1'

# ...or without.
env GOFLAGS='-timeout=24h0m0s -count=1'
go test -v -x ./x
stdout 'timeout: 24h0m0s$'
stderr '-test.count=1'

# Arguments from the command line should override GOFLAGS...
go test -v -x -timeout=25h0m0s ./x
stdout 'timeout: 25h0m0s$'
stderr '-test.count=1'

# ...even if they use a different flag name.
go test -v -x -test.timeout=26h0m0s ./x
stdout 'timeout: 26h0m0s$'
stderr '-test\.timeout=26h0m0s'
! stderr 'timeout=24h0m0s'
stderr '-test.count=1'

# Invalid flags should be reported exactly once.
! go test -covermode=walrus ./x
stderr -count=1 'invalid value "walrus" for flag -covermode: valid modes are .*$'
stderr '^usage: go test .*$'
stderr '^Run ''go help test'' and ''go help testflag'' for details.$'

# Passing -help to the test binary should show flag help.
go test ./x -args -help
stdout 'usage_message'

# -covermode, -coverpkg, and -coverprofile should imply -cover
go test -covermode=set ./x
stdout '\s+coverage:\s+'

go test -coverpkg=encoding/binary ./x
stdout '\s+coverage:\s+'

go test -coverprofile=cover.out ./x
stdout '\s+coverage:\s+'
exists ./cover.out
rm ./cover.out

# -*profile and -trace flags should force output to the current working directory
# or -outputdir, not the directory containing the test.

go test -memprofile=mem.out ./x
exists ./mem.out
rm ./mem.out

go test -trace=trace.out ./x
exists ./trace.out
rm ./trace.out

# Relative paths with -outputdir should be relative to the go command's working
# directory, not the directory containing the test.
mkdir profiles
go test -memprofile=mem.out -outputdir=./profiles ./x
exists ./profiles/mem.out
rm profiles

-- go.mod --
module example.com
go 1.14
-- x/x_test.go --
package x

import (
	"flag"
	"strings"
	"testing"
)

var _ = flag.String("usage_message", "", "dummy flag to check usage message")
var boolflag = flag.Bool("boolflag", false, "ignored boolean flag")
var stringflag = flag.String("stringflag", "", "ignored string flag")

func TestLogTimeout(t *testing.T) {
	t.Logf("timeout: %v", flag.Lookup("test.timeout").Value)
}

func TestLogArgs(t *testing.T) {
	t.Logf("args: %s", strings.Join(flag.Args(), " "))
}
