Documentation
¶
Overview ¶
Package gorunner executes one bounded, explicit Go test plan.
Index ¶
Constants ¶
View Source
const ( MaxOutputBytes = int64(8 << 20) MaxCoverageBytes = int64(256 << 20) // MaxPackages leaves room for the executable and four frozen go arguments // within the 4,096-element argv bound. MaxPackages = 4_091 MaxArgvBytes = 4 << 20 MaxEnvEntries = 256 MaxEnvBytes = 1 << 20 MaxRunTime = 30 * time.Minute MaxPipeWait = 2 * time.Second )
Variables ¶
View Source
var ( ErrInvalidPlan = errors.New("gorunner: invalid plan") ErrUnsupportedPlatform = errors.New("gorunner: unsupported platform") ErrStart = errors.New("gorunner: start failed") ErrWait = errors.New("gorunner: wait failed") ErrPipe = errors.New("gorunner: pipe drain failed") ErrPipeWait = errors.New("gorunner: pipe drain timed out") ErrContainment = errors.New("gorunner: process-group cleanup failed") )
Functions ¶
This section is empty.
Types ¶
type Containment ¶
type Containment string
const ( ContainmentProcessGroupBestEffort Containment = "PROCESS_GROUP_BEST_EFFORT" ContainmentUnsupported Containment = "UNSUPPORTED" )
type CoverageCompleteness ¶
type CoverageCompleteness string
const ( CoverageAbsent CoverageCompleteness = "ABSENT" CoverageComplete CoverageCompleteness = "COMPLETE" CoveragePartial CoverageCompleteness = "PARTIAL" CoverageRejected CoverageCompleteness = "REJECTED" )
type CoverageMode ¶
type CoverageMode string
const ( CoverageModeSet CoverageMode = "set" CoverageModeCount CoverageMode = "count" CoverageModeAtomic CoverageMode = "atomic" )
type CoverageObservation ¶
type CoverageObservation struct {
ArtifactSHA256 string
Completeness CoverageCompleteness
Mode string
Packages []string
RawRootSHA256 string
}
type CoveragePackage ¶
type CoveragePackage struct {
ImportPath string
Files []CoverageSourceFile
}
type CoverageRequest ¶
type CoverageRequest struct {
Directory string
ProfilePath string
RepositoryRoot string
Mode CoverageMode
Packages []CoveragePackage
}
type CoverageSourceFile ¶
type EnvironmentVariable ¶
type Plan ¶
type Plan struct {
// GoExecutable and WorkingDirectory must be clean absolute paths whose final
// components are not symlinks. Mandatory parent-component, source, toolchain,
// and environment identity checks belong to the coordinator immediately
// before and after Run; Run exposes no potentially unbounded callbacks.
GoExecutable string
WorkingDirectory string
Environment []EnvironmentVariable
Packages []string
OutputLimitBytes int64
// RetainOutput keeps at most OutputLimitBytes across both Result Data fields.
// Data is transient caller-owned output and is nil when RetainOutput is false.
// Bounded retention deliberately replaces arbitrary streaming callbacks: an
// uncooperative callback could defeat the hard return bound.
RetainOutput bool
Timeout time.Duration
// Coverage is an opt-in combined-run coverage request. Nil preserves the
// exact non-coverage invocation and result.
Coverage *CoverageRequest
}
type Result ¶
type Result struct {
Argv []string
Cancelled bool
Containment Containment
Duration time.Duration
ExitCode int
Exited bool
OutputLimitExceeded bool
PipeWaitExpired bool
ProcessCleanupDone bool
Started bool
Stderr StreamResult
Stdout StreamResult
TimedOut bool
Coverage CoverageObservation
}
Click to show internal directories.
Click to hide internal directories.