Documentation ¶
Overview ¶
Package testenv provides information about what functionality is available in different testing environments run by the Go team.
It is an internal package because these details are specific to the Go team's test setup (on build.golang.org) and not fundamental to tests in general.
Index ¶
- Variables
- func Builder() string
- func CPUIsSlow() bool
- func CanInternalLink() bool
- func CleanCmdEnv(cmd *exec.Cmd) *exec.Cmd
- func Command(t testing.TB, name string, args ...string) *exec.Cmd
- func CommandContext(t testing.TB, ctx context.Context, name string, args ...string) *exec.Cmd
- func GOROOT(t testing.TB) string
- func GoTool() (string, error)
- func GoToolPath(t testing.TB) string
- func HasCGO() bool
- func HasExec() bool
- func HasExternalNetwork() bool
- func HasGoBuild() bool
- func HasGoRun() bool
- func HasLink() bool
- func HasSrc() bool
- func HasSymlink() bool
- func MustHaveCGO(t testing.TB)
- func MustHaveExec(t testing.TB)
- func MustHaveExecPath(t testing.TB, path string)
- func MustHaveExternalNetwork(t testing.TB)
- func MustHaveGoBuild(t testing.TB)
- func MustHaveGoRun(t testing.TB)
- func MustHaveLink(t testing.TB)
- func MustHaveSymlink(t testing.TB)
- func MustInternalLink(t testing.TB)
- func OptimizationOff() bool
- func SkipFlaky(t testing.TB, issue int)
- func SkipFlakyNet(t testing.TB)
- func SkipIfOptimizationOff(t testing.TB)
- func SkipIfShortAndSlow(t testing.TB)
- func WriteImportcfg(t testing.TB, dstPath string, additionalPackageFiles map[string]string)
Constants ¶
This section is empty.
Variables ¶
var Sigquit = syscall.SIGQUIT
Sigquit is the signal to send to kill a hanging subprocess. Send SIGQUIT to get a stack trace.
Functions ¶
func Builder ¶
func Builder() string
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 CPUIsSlow ¶ added in go1.16
func CPUIsSlow() bool
CPUIsSlow reports whether the CPU running the test is suspected to be slow.
func CanInternalLink ¶ added in go1.16
func CanInternalLink() bool
CanInternalLink reports whether the current system can link programs with internal linking.
func CleanCmdEnv ¶ added in go1.10
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.
func Command ¶ added in go1.20
Command is like exec.Command, but applies the same changes as testenv.CommandContext (with a default Context).
func CommandContext ¶ added in go1.20
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 GOROOT ¶ added in go1.19
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.
If GOROOT cannot be found, GOROOT skips t if t is non-nil, or panics otherwise.
func GoToolPath ¶ added in go1.7
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 HasCGO ¶ added in go1.10
func HasCGO() bool
HasCGO reports whether the current system can use cgo.
func HasExec ¶
func HasExec() bool
HasExec reports whether the current system can start new processes using os.StartProcess or (more commonly) exec.Command.
func HasExternalNetwork ¶
func HasExternalNetwork() bool
HasExternalNetwork reports whether the current system can use external (non-localhost) networks.
func HasGoBuild ¶
func HasGoBuild() bool
HasGoBuild reports whether the current system can build programs with “go build” and then run them with os.StartProcess or exec.Command.
func HasGoRun ¶
func HasGoRun() bool
HasGoRun reports whether the current system can run programs with “go run.”
func HasLink ¶ added in go1.8
func HasLink() bool
HasLink reports whether the current system can use os.Link.
func HasSrc ¶ added in go1.9
func HasSrc() bool
HasSrc reports whether the entire source tree is available under GOROOT.
func HasSymlink ¶ added in go1.8
func HasSymlink() bool
HasSymlink reports whether the current system can use os.Symlink.
func MustHaveCGO ¶ added in go1.8.1
MustHaveCGO calls t.Skip if cgo is not available.
func MustHaveExec ¶
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.
func MustHaveExecPath ¶ added in go1.13
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 MustHaveExternalNetwork ¶
MustHaveExternalNetwork checks that the current system can use external (non-localhost) networks. If not, MustHaveExternalNetwork calls t.Skip with an explanation.
func MustHaveGoBuild ¶
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 MustHaveGoRun ¶
MustHaveGoRun checks that the current system can run programs with “go run.” If not, MustHaveGoRun calls t.Skip with an explanation.
func MustHaveLink ¶ added in go1.8
MustHaveLink reports whether the current system can use os.Link. If not, MustHaveLink calls t.Skip with an explanation.
func MustHaveSymlink ¶ added in go1.8
MustHaveSymlink reports whether the current system can use os.Symlink. If not, MustHaveSymlink calls t.Skip with an explanation.
func MustInternalLink ¶ added in go1.16
MustInternalLink checks that the current system can link programs with internal linking. If not, MustInternalLink calls t.Skip with an explanation.
func OptimizationOff ¶ added in go1.20
func OptimizationOff() bool
OptimizationOff reports whether optimization is disabled.
func SkipFlakyNet ¶ added in go1.7
func SkipIfOptimizationOff ¶ added in go1.20
SkipIfOptimizationOff skips t if optimization is disabled.
func SkipIfShortAndSlow ¶ added in go1.16
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 WriteImportcfg ¶ added in go1.20
WriteImportcfg writes an importcfg file used by the compiler or linker to dstPath containing entries for the packages in std and cmd in addition to the package to package file mappings in additionalPackageFiles.
Types ¶
This section is empty.