Functions
Builder
function
#
Builder reports the name of the builder running this test
(for example, "linux-amd64" or "windows-386-gce").
If the test is not running on the build infrastructure,
Builder returns the empty string.
func Builder() string
CPUIsSlow
function
#
CPUIsSlow reports whether the CPU running the test is suspected to be slow.
func CPUIsSlow() bool
CPUProfilingBroken
function
#
CPUProfilingBroken returns true if CPU profiling has known issues on this
platform.
func CPUProfilingBroken() bool
CanInternalLink
function
#
CanInternalLink reports whether the current system can link programs with
internal linking.
func CanInternalLink(withCgo bool) bool
CleanCmdEnv
function
#
CleanCmdEnv will fill cmd.Env with the environment, excluding certain
variables that could modify the behavior of the Go tools such as
GODEBUG and GOTRACEBACK.
If the caller wants to set cmd.Dir, set it before calling this function,
so PWD will be set correctly in the environment.
func CleanCmdEnv(cmd *exec.Cmd) *exec.Cmd
Command
function
#
Command is like exec.Command, but applies the same changes as
testenv.CommandContext (with a default Context).
func Command(t testing.TB, name string, args ...string) *exec.Cmd
CommandContext
function
#
CommandContext is like exec.CommandContext, but:
- skips t if the platform does not support os/exec,
- sends SIGQUIT (if supported by the platform) instead of SIGKILL
in its Cancel function
- if the test has a deadline, adds a Context timeout and WaitDelay
for an arbitrary grace period before the test's deadline expires,
- fails the test if the command does not complete before the test's deadline, and
- sets a Cleanup function that verifies that the test did not leak a subprocess.
func CommandContext(t testing.TB, ctx context.Context, name string, args ...string) *exec.Cmd
Executable
function
#
Executable is a wrapper around [MustHaveExec] and [os.Executable].
It returns the path name for the executable that started the current process,
or skips the test if the current system can't start new processes,
or fails the test if the path can not be obtained.
func Executable(t testing.TB) string
GOROOT
function
#
GOROOT reports the path to the directory containing the root of the Go
project source tree. This is normally equivalent to runtime.GOROOT, but
works even if the test binary was built with -trimpath and cannot exec
'go env GOROOT'.
If GOROOT cannot be found, GOROOT skips t if t is non-nil,
or panics otherwise.
func GOROOT(t testing.TB) string
GoTool
function
#
GoTool reports the path to the Go tool.
func GoTool() (string, error)
GoToolPath
function
#
GoToolPath reports the path to the Go tool.
It is a convenience wrapper around GoTool.
If the tool is unavailable GoToolPath calls t.Skip.
If the tool should be available and isn't, GoToolPath calls t.Fatal.
func GoToolPath(t testing.TB) string
HasCGO
function
#
HasCGO reports whether the current system can use cgo.
func HasCGO() bool
HasExternalNetwork
function
#
HasExternalNetwork reports whether the current system can use
external (non-localhost) networks.
func HasExternalNetwork() bool
HasGoBuild
function
#
HasGoBuild reports whether the current system can build programs with “go build”
and then run them with os.StartProcess or exec.Command.
func HasGoBuild() bool
HasGoRun
function
#
HasGoRun reports whether the current system can run programs with “go run”.
func HasGoRun() bool
HasLink
function
#
HasLink reports whether the current system can use os.Link.
func HasLink() bool
HasParallelism
function
#
HasParallelism reports whether the current system can execute multiple
threads in parallel.
There is a copy of this function in cmd/dist/test.go.
func HasParallelism() bool
HasSymlink
function
#
HasSymlink reports whether the current system can use os.Symlink.
func HasSymlink() bool
MustHaveBuildMode
function
#
MustHaveBuildMode reports whether the current system can build programs in
the given build mode.
If not, MustHaveBuildMode calls t.Skip with an explanation.
func MustHaveBuildMode(t testing.TB, buildmode string)
MustHaveCGO
function
#
MustHaveCGO calls t.Skip if cgo is not available.
func MustHaveCGO(t testing.TB)
MustHaveExec
function
#
MustHaveExec checks that the current system can start new processes
using os.StartProcess or (more commonly) exec.Command.
If not, MustHaveExec calls t.Skip with an explanation.
On some platforms MustHaveExec checks for exec support by re-executing the
current executable, which must be a binary built by 'go test'.
We intentionally do not provide a HasExec function because of the risk of
inappropriate recursion in TestMain functions.
To check for exec support outside of a test, just try to exec the command.
If exec is not supported, testenv.SyscallIsNotSupported will return true
for the resulting error.
func MustHaveExec(t testing.TB)
MustHaveExecPath
function
#
MustHaveExecPath checks that the current system can start the named executable
using os.StartProcess or (more commonly) exec.Command.
If not, MustHaveExecPath calls t.Skip with an explanation.
func MustHaveExecPath(t testing.TB, path string)
MustHaveExternalNetwork
function
#
MustHaveExternalNetwork checks that the current system can use
external (non-localhost) networks.
If not, MustHaveExternalNetwork calls t.Skip with an explanation.
func MustHaveExternalNetwork(t testing.TB)
MustHaveGoBuild
function
#
MustHaveGoBuild checks that the current system can build programs with “go build”
and then run them with os.StartProcess or exec.Command.
If not, MustHaveGoBuild calls t.Skip with an explanation.
func MustHaveGoBuild(t testing.TB)
MustHaveGoRun
function
#
MustHaveGoRun checks that the current system can run programs with “go run”.
If not, MustHaveGoRun calls t.Skip with an explanation.
func MustHaveGoRun(t testing.TB)
MustHaveLink
function
#
MustHaveLink reports whether the current system can use os.Link.
If not, MustHaveLink calls t.Skip with an explanation.
func MustHaveLink(t testing.TB)
MustHaveParallelism
function
#
MustHaveParallelism checks that the current system can execute multiple
threads in parallel. If not, MustHaveParallelism calls t.Skip with an explanation.
func MustHaveParallelism(t testing.TB)
MustHaveSource
function
#
MustHaveSource checks that the entire source tree is available under GOROOT.
If not, it calls t.Skip with an explanation.
func MustHaveSource(t testing.TB)
MustHaveSymlink
function
#
MustHaveSymlink reports whether the current system can use os.Symlink.
If not, MustHaveSymlink calls t.Skip with an explanation.
func MustHaveSymlink(t testing.TB)
MustInternalLink
function
#
MustInternalLink checks that the current system can link programs with internal
linking.
If not, MustInternalLink calls t.Skip with an explanation.
func MustInternalLink(t testing.TB, withCgo bool)
MustInternalLinkPIE
function
#
MustInternalLinkPIE checks whether the current system can link PIE binary using
internal linking.
If not, MustInternalLinkPIE calls t.Skip with an explanation.
func MustInternalLinkPIE(t testing.TB)
OptimizationOff
function
#
OptimizationOff reports whether optimization is disabled.
func OptimizationOff() bool
OptimizationOff
function
#
OptimizationOff reports whether optimization is disabled.
func OptimizationOff() bool
ParallelOn64Bit
function
#
ParallelOn64Bit calls t.Parallel() unless there is a case that cannot be parallel.
This function should be used when it is necessary to avoid t.Parallel on
32-bit machines, typically because the test uses lots of memory.
func ParallelOn64Bit(t *testing.T)
SkipFlaky
function
#
func SkipFlaky(t testing.TB, issue int)
SkipFlakyNet
function
#
func SkipFlakyNet(t testing.TB)
SkipIfOptimizationOff
function
#
SkipIfOptimizationOff skips t if optimization is disabled.
func SkipIfOptimizationOff(t testing.TB)
SkipIfShortAndSlow
function
#
SkipIfShortAndSlow skips t if -short is set and the CPU running the test is
suspected to be slow.
(This is useful for CPU-intensive tests that otherwise complete quickly.)
func SkipIfShortAndSlow(t testing.TB)
SyscallIsNotSupported
function
#
SyscallIsNotSupported reports whether err may indicate that a system call is
not supported by the current platform or execution environment.
func SyscallIsNotSupported(err error) bool
WriteImportcfg
function
#
WriteImportcfg writes an importcfg file used by the compiler or linker to
dstPath containing entries for the file mappings in packageFiles, as well
as for the packages transitively imported by the package(s) in pkgs.
pkgs may include any package pattern that is valid to pass to 'go list',
so it may also be a list of Go source files all in the same directory.
func WriteImportcfg(t testing.TB, dstPath string, packageFiles map[string]string, pkgs ...string)
syscallIsNotSupported
function
#
func syscallIsNotSupported(err error) bool
syscallIsNotSupported
function
#
func syscallIsNotSupported(err error) bool