Documentation ¶
Index ¶
- Constants
- Variables
- func ValidateInstances(sl validator.StructLevel)
- func WriteCompositionToFile(comp *Composition, file string) error
- type Build
- type BuildInput
- type BuildOutput
- type BuildPurgeRequest
- type BuildRequest
- type BuildResponse
- type Builder
- type CancelRequest
- type CollectResponse
- type CollectionInput
- type ComponentType
- type Composition
- func (c Composition) FrameForRuns(runIds ...string) (*Composition, error)
- func (c Composition) GenerateDefaultRun() *Composition
- func (c Composition) GetGroup(groupId string) (*Group, error)
- func (c *Composition) ListBuilders() []string
- func (c Composition) ListGroupsIds() []string
- func (c Composition) ListRunIds() []string
- func (c Composition) PickGroups(indices ...int) (Composition, error)
- func (c Composition) PrepareForBuild(manifest *TestPlanManifest) (*Composition, error)
- func (c Composition) PrepareForRun(manifest *TestPlanManifest) (*Composition, error)
- func (c *Composition) ValidateForBuild() error
- func (c *Composition) ValidateForRun() error
- type CompositionRunGroup
- type CompositionRunGroups
- type CreatedBy
- type Dependencies
- type Dependency
- type DependencyTarget
- type DescribeRequest
- type Engine
- type Global
- type Group
- type Groups
- type HealthcheckItem
- type HealthcheckReport
- type HealthcheckRequest
- type HealthcheckResponse
- type HealthcheckStatus
- type Healthchecker
- type InstanceConstraints
- type Instances
- type LogsRequest
- type LogsResponse
- type Metadata
- type OutputsRequest
- type Parameter
- type Resources
- type Run
- type RunGroup
- type RunInput
- type RunOutput
- type RunParams
- type RunRequest
- type RunResponse
- type Runner
- type Runs
- type StatusRequest
- type StatusResponse
- type TasksFilters
- type TasksManager
- type TasksRequest
- type Terminatable
- type TerminateRequest
- type TestCase
- type TestPlanManifest
- func (tp *TestPlanManifest) Describe(w io.Writer)
- func (tp *TestPlanManifest) HasBuilder(name string) bool
- func (tp *TestPlanManifest) HasRunner(name string) bool
- func (tp *TestPlanManifest) SupportedBuilders() []string
- func (tp *TestPlanManifest) SupportedRunners() []string
- func (tp *TestPlanManifest) TestCaseByName(name string) (idx int, tc *TestCase, ok bool)
- type UnpackedSources
Constants ¶
const ( RunnerType = ComponentType("runner") BuilderType = ComponentType("builder") )
Variables ¶
var ( // HealthcheckStatusOK indicates success in a healthcheck or a fix. HealthcheckStatusOK = HealthcheckStatus("ok") // HealthcheckStatusFailed indicates the outcome of a healthcheck or an // attempted fix was negative. HealthcheckStatusFailed = HealthcheckStatus("failed") // HealthcheckStatusAborted indicates an internal error during the execution // of a healthcheck or a fix. HealthcheckStatusAborted = HealthcheckStatus("aborted") // HealthcheckStatusOmitted indicates that a healthcheck or a fix was not // carried out due to previous errors. HealthcheckStatusOmitted = HealthcheckStatus("omitted") // HealthcheckStatusUnnecessary indicates that a check or fix was not // needed. HealthcheckStatusUnnecessary = HealthcheckStatus("unnecessary") )
Functions ¶
func ValidateInstances ¶
func ValidateInstances(sl validator.StructLevel)
ValidateInstances validates that either count or percentage is provided, but not both.
func WriteCompositionToFile ¶ added in v0.6.0
func WriteCompositionToFile(comp *Composition, file string) error
Types ¶
type Build ¶
type Build struct { // Selectors specifies any source selection strings to be sent to the // builder. In the case of go builders, this field maps to build tags. Selectors []string `toml:"selectors" json:"selectors"` // Dependencies specifies any upstream dependency overrides to apply to this // build. Dependencies Dependencies `toml:"dependencies" json:"dependencies"` }
type BuildInput ¶
type BuildInput struct { // BuildID is a unique ID for this build. BuildID string // EnvConfig is the env configuration of the engine. Not a pointer to force // a copy. EnvConfig config.EnvConfig // TestPlan is the name of the test plan being built. TestPlan string // UnpackedSources encapsulates the directories where sources for this // build job have been unpacked. UnpackedSources *UnpackedSources // Selectors specifies any source selection strings to be sent to the // builder. In the case of go builders, this field maps to build tags. Selectors []string // Dependencies are the versions and target of upstream dependencies we wants // to build against. For a go build, this could be e.g.: // github.com/ipfs/go-ipfs=v0.4.22 // github.com/libp2p/go-libp2p=github.com/user/fork@v0.2.8 Dependencies map[string]DependencyTarget // BuildConfig is the configuration of the build job sourced from the test // plan manifest, coalesced with any user-provided overrides. BuildConfig interface{} }
BuildInput encapsulates the input options for building a test plan.
type BuildOutput ¶
type BuildOutput struct { // BuilderID is the ID of the builder used. BuilderID string // ArtifactPath can be the docker image ID, a file location, etc. of the // resulting artifact. It is builder-dependent. ArtifactPath string // Dependencies is a map of modules (as keys) to versions (as values), // containing the collapsed transitive upstream dependency set of this // build. Dependencies map[string]string }
BuildOutput encapsulates the output from a build action.
type BuildPurgeRequest ¶ added in v0.5.3
type BuildRequest ¶
type BuildRequest struct { Priority int `json:"priority"` Composition Composition `json:"composition"` Manifest TestPlanManifest `json:"manifest"` CreatedBy CreatedBy `json:"created_by"` }
BuildRequest is the request struct for the `build` function.
type BuildResponse ¶
type BuildResponse = []BuildOutput
BuildResponse is the response struct for the `build` function.
type Builder ¶
type Builder interface { // ID returns the canonical identifier for this builder. ID() string // Build performs a build. Build(ctx context.Context, input *BuildInput, ow *rpc.OutputWriter) (*BuildOutput, error) // Purge frees resources, such as caches. Purge(ctx context.Context, testplan string, ow *rpc.OutputWriter) error // ConfigType returns the configuration type of this builder. ConfigType() reflect.Type }
Builder is the interface to be implemented by all builders. A builder takes a test plan and builds it into executable form against a set of upstream dependencies, so it can be scheduled by a runner.
type CancelRequest ¶ added in v0.6.0
type CancelRequest struct {
TaskID string `json:"task_id"`
}
type CollectResponse ¶
type CollectionInput ¶
type CollectionInput struct { // EnvConfig is the env configuration of the engine. Not a pointer to force // a copy. EnvConfig config.EnvConfig RunID string RunnerID string // RunnerConfig is the configuration of the runner sourced from the test // plan manifest, coalesced with any user-provided overrides. RunnerConfig interface{} }
type ComponentType ¶ added in v0.5.3
type ComponentType string
type Composition ¶
type Composition struct { // Metadata expresses optional metadata about this composition. Metadata Metadata `toml:"metadata" json:"metadata"` // Global defines the general parameters for this composition. Global Global `toml:"global" json:"global"` // Groups enumerates the instances groups that participate in this // composition. Groups Groups `toml:"groups" json:"groups" validate:"required,gt=0"` // Runs enumerate the runs that participate in this composition. Runs Runs `toml:"runs" json:"runs" validate:"required,gt=0"` }
func (Composition) FrameForRuns ¶ added in v0.6.0
func (c Composition) FrameForRuns(runIds ...string) (*Composition, error)
FrameForRuns clones this composition, retaining only the specified run ids and corresponding groups
func (Composition) GenerateDefaultRun ¶ added in v0.6.0
func (c Composition) GenerateDefaultRun() *Composition
Generate Default Run This method doesn't modify the composition, it returns a new one.
func (Composition) GetGroup ¶ added in v0.6.0
func (c Composition) GetGroup(groupId string) (*Group, error)
func (*Composition) ListBuilders ¶ added in v0.6.0
func (c *Composition) ListBuilders() []string
func (Composition) ListGroupsIds ¶ added in v0.6.0
func (c Composition) ListGroupsIds() []string
func (Composition) ListRunIds ¶ added in v0.6.0
func (c Composition) ListRunIds() []string
func (Composition) PickGroups ¶
func (c Composition) PickGroups(indices ...int) (Composition, error)
PickGroups clones this composition, retaining only the specified groups.
func (Composition) PrepareForBuild ¶
func (c Composition) PrepareForBuild(manifest *TestPlanManifest) (*Composition, error)
PrepareForBuild verifies that this composition is compatible with the provided manifest for the purposes of a build, and applies any manifest- mandated defaults for the builder configuration.
This method doesn't modify the composition, it returns a new one.
func (Composition) PrepareForRun ¶
func (c Composition) PrepareForRun(manifest *TestPlanManifest) (*Composition, error)
PrepareForRun verifies that this composition is compatible with the provided manifest for the purposes of a run, verifies the instance count is within bounds, applies any manifest-mandated defaults for the runner configuration, and applies default run parameters.
This method doesn't modify the composition, it returns a new one.
func (*Composition) ValidateForBuild ¶
func (c *Composition) ValidateForBuild() error
ValidateForBuild validates that this Composition is correct for a build.
func (*Composition) ValidateForRun ¶
func (c *Composition) ValidateForRun() error
ValidateForRun validates that this Composition is correct for a run.
type CompositionRunGroup ¶ added in v0.6.0
type CompositionRunGroup struct { // ID is the unique ID of this group. ID string `toml:"id" json:"id"` // GroupID is the ID of the group that this run group belongs to. // It will default to ID. GroupID string `toml:"group_id" json:"group_id" mapstructure:"group_id"` // Resources requested for each pod from the Kubernetes cluster Resources Resources `toml:"resources" json:"resources"` // Instances defines the number of instances that belong to this group. Instances Instances `toml:"instances" json:"instances"` // TestParams specify the test parameters to pass down to instances of this // group. TestParams map[string]string `toml:"test_params" json:"test_params" mapstructure:"test_params"` // Profiles specifies the profiles to capture, and the frequency of capture // of each. Profile support is SDK-dependent, as it relies entirely on the // facilities provided by the language runtime. // // In the case of Go, all profile kinds listed in https://golang.org/pkg/runtime/pprof/#Profile // are supported, taking a frequency expressed in time.Duration string // representation (e.g. 5s for every five seconds). Additionally, a special // profile kind "cpu" is supported; it takes no frequency and it starts a // CPU profile for the entire duration of the test. Profiles map[string]string `toml:"profiles" json:"profiles"` // contains filtered or unexported fields }
func (*CompositionRunGroup) CalculatedInstanceCount ¶ added in v0.6.0
func (r *CompositionRunGroup) CalculatedInstanceCount() uint
CalculatedInstanceCount returns the actual number of instances in this group.
Validate MUST be called for this field to be available.
func (CompositionRunGroup) EffectiveGroupId ¶ added in v0.6.0
func (x CompositionRunGroup) EffectiveGroupId() string
func (CompositionRunGroup) PrepareForRun ¶ added in v0.6.0
func (g CompositionRunGroup) PrepareForRun(manifest *TestPlanManifest, composition *Composition, r *Run) (*CompositionRunGroup, error)
type CompositionRunGroups ¶ added in v0.6.0
type CompositionRunGroups []*CompositionRunGroup
type Dependencies ¶
type Dependencies []Dependency
func (Dependencies) ApplyDefaults ¶ added in v0.5.3
func (d Dependencies) ApplyDefaults(defaults Dependencies) Dependencies
ApplyDefaults applies defaults from the provided set, only for those keys that are not explicitly set in the receiver.
func (Dependencies) AsMap ¶
func (d Dependencies) AsMap() map[string]Dependency
type Dependency ¶
type Dependency struct { // Module is the module name/path for the import to be overridden. Module string `toml:"module" json:"module" validate:"required"` // Target is the override module. Target string `toml:"target" json:"target" validate:"target"` // Version is the override version. Version string `toml:"version" json:"version" validate:"required"` }
type DependencyTarget ¶ added in v0.5.3
type DependencyTarget struct { // Target is the replacement dependency we want to use. It can be a different // fork or some module if the builder supports it. Target string // Version is the version of the dependency we want to use. Version string }
DependencyTarget encapsulates the target and version of a dependency.
type DescribeRequest ¶
type DescribeRequest struct {
Term string `json:"term"`
}
DescribeRequest is the request struct for the `describe` function.
type Engine ¶
type Engine interface { TasksManager BuilderByName(name string) (Builder, bool) RunnerByName(name string) (Runner, bool) ListBuilders() map[string]Builder ListRunners() map[string]Runner QueueBuild(request *BuildRequest, sources *UnpackedSources) (string, error) QueueRun(request *RunRequest, sources *UnpackedSources) (string, error) DoBuildPurge(ctx context.Context, builder, plan string, ow *rpc.OutputWriter) error DoCollectOutputs(ctx context.Context, runID string, ow *rpc.OutputWriter) error DoTerminate(ctx context.Context, ctype ComponentType, ref string, ow *rpc.OutputWriter) error DoHealthcheck(ctx context.Context, runner string, fix bool, ow *rpc.OutputWriter) (*HealthcheckReport, error) EnvConfig() config.EnvConfig Context() context.Context }
type Global ¶
type Global struct { // Plan is the test plan we want to run. Plan string `toml:"plan" json:"plan" validate:"required"` // Case is the test case we want to run. Case string `toml:"case" json:"case" validate:"required"` // TotalInstances defines the default total number of instances that participate in // runs of this composition; it is the sum of all instances in all groups. // // If all your instance counts are absolute values (and not percentages), you // may skip this value. It will be calculated automatically. TotalInstances uint `toml:"total_instances" json:"total_instances" mapstructure:"total_instances" validate:"gte=0"` // ConcurrentBuilds defines the maximum number of concurrent builds that are // scheduled for this test. ConcurrentBuilds int `toml:"concurrent_builds" json:"concurrent_builds"` // Builder is the default builder we're using. Builder string `toml:"builder" json:"builder"` // BuildConfig specifies the build configuration for this run. BuildConfig map[string]interface{} `toml:"build_config" json:"build_config" mapstructure:"build_config"` // Build applies global build defaults that trickle down to all groups, such // as selectors or dependencies. Groups can override these in their local // build definition. Build *Build `toml:"build" json:"build"` // Runner is the runner we're using. Runner string `toml:"runner" json:"runner" validate:"required"` // RunConfig specifies the run configuration for this run. RunConfig map[string]interface{} `toml:"run_config" json:"run_config" mapstructure:"run_config"` // Run applies global run defaults that trickle down to all groups, such as // test parameters or build artifacts. Groups can override these in their // local run definition. Run *RunParams `toml:"run" json:"run"` // DisableMetrics is used to disable metrics batching. DisableMetrics bool `toml:"disable_metrics" json:"disable_metrics"` }
type Group ¶
type Group struct { // ID is the unique ID of this group. ID string `toml:"id" json:"id"` // Builder is the builder we're using. Builder string `toml:"builder" json:"builder"` // BuildConfig specifies the build configuration for this run. BuildConfig map[string]interface{} `toml:"build_config" json:"build_config" mapstructure:"build_config"` // Build specifies the build configuration for this group. Build Build `toml:"build" json:"build"` // Resources requested for each pod from the Kubernetes cluster Resources Resources `toml:"resources" json:"resources"` // Instances defines the number of instances that belong to this group. Instances Instances `toml:"instances" json:"instances"` // Run specifies the run configuration for this group. Run RunParams `toml:"run" json:"run"` // contains filtered or unexported fields }
func (Group) BuildKey ¶ added in v0.6.0
BuildKey returns a composite key that identifies this build, suitable for deduplication.
func (*Group) CalculatedInstanceCount ¶
CalculatedInstanceCount returns the actual number of instances in this group.
Validate MUST be called for this field to be available.
func (*Group) DefaultRunGroup ¶ added in v0.6.0
func (g *Group) DefaultRunGroup() *CompositionRunGroup
func (Group) PrepareForBuild ¶ added in v0.6.0
func (g Group) PrepareForBuild(manifest *TestPlanManifest, c *Composition) (*Group, error)
PrepareForBuild verifies that this group is compatible with the provided manifest for the purposes of a build, and applies any manifest and global compositions defaults for the builder configuration.
TODO: the build config mapping is not deep-cloned, fix. This method doesn't modify the Group, it returns a new one.
type Groups ¶ added in v0.5.3
type Groups []*Group
func (Groups) Validate ¶ added in v0.5.3
func (gs Groups) Validate(c *Composition) error
type HealthcheckItem ¶
type HealthcheckItem struct { // Name is a short name describing this item. Name string // Status is the status of this check/fix. Status HealthcheckStatus // Message optionally contains any human-readable messages to be presented // to the user. Message string }
HealthcheckItem represents an entry in a HealthcheckReport. It is used to convey the result of checks and fixes.
type HealthcheckReport ¶
type HealthcheckReport struct { // Checks enumerates the outcomes of the health checks. Checks []HealthcheckItem // Fixes enumerates the outcomes of the fixes applied during fix, if a // fix was requested. Fixes []HealthcheckItem }
func (*HealthcheckReport) ChecksSucceeded ¶
func (hr *HealthcheckReport) ChecksSucceeded() bool
func (*HealthcheckReport) FixesSucceeded ¶
func (hr *HealthcheckReport) FixesSucceeded() bool
func (*HealthcheckReport) String ¶
func (hr *HealthcheckReport) String() string
type HealthcheckRequest ¶
type HealthcheckResponse ¶
type HealthcheckResponse = HealthcheckReport
type Healthchecker ¶
type Healthchecker interface {
Healthcheck(ctx context.Context, engine Engine, ow *rpc.OutputWriter, fix bool) (*HealthcheckReport, error)
}
Healthchecker is the interface to be implemented by a runner or builder that supports healthchecks and fixes.
type InstanceConstraints ¶
InstanceConstraints expresses how many instances this test case can run.
type Instances ¶
type Instances struct { // Count specifies the exact number of instances that belong to a group. // // Specifying a count is mutually exclusive with specifying a percentage. Count uint `toml:"count" json:"count"` // Percentage indicates the number of instances belonging to a group as a // proportion of the total instance count. // // Specifying a percentage is mutually exclusive with specifying a count. Percentage float64 `toml:"percentage" json:"percentage"` }
type LogsRequest ¶ added in v0.6.0
type LogsResponse ¶ added in v0.6.0
type OutputsRequest ¶
type Parameter ¶
type Parameter struct { Type string Description string `toml:"desc"` Unit string Default interface{} }
Parameter is metadata about a test case parameter.
type Run ¶
type Run struct { // ID is the unique ID of this run group. ID string `toml:"id" json:"id"` // TestParams specify the test parameters to pass down to instances of this // group. TestParams map[string]string `toml:"test_params" json:"test_params" mapstructure:"test_params"` // TotalInstances defines the total number of instances that participate in // this run; it is the sum of all instances in all groups. TotalInstances uint `toml:"total_instances" json:"total_instances" mapstructure:"total_instances" validate:"gte=0"` // Instances defines the number of instances that belong to this group. Groups CompositionRunGroups `toml:"groups" json:"groups" validate:"required,gt=0"` }
func (Run) PrepareForRun ¶ added in v0.6.0
func (r Run) PrepareForRun(manifest *TestPlanManifest, composition *Composition) (*Run, error)
type RunGroup ¶
type RunGroup struct { // ID is the id of the instance group this run pertains to. ID string // Instances is the number of instances to run with this configuration. Instances int // Resources for per instance in this group Resources Resources // ArtifactPath can be a docker image ID or an executable path; it's // runner-dependent. ArtifactPath string // Parameters are the runtime parameters to the test case. Parameters map[string]string // Profiles specifies the profiles to capture. Refer to the docs // on Run#Profiles for more info. Profiles map[string]string }
type RunInput ¶
type RunInput struct { // RunID is the run id assigned to this job by the Engine. RunID string // EnvConfig is the env configuration of the engine. Not a pointer to force // a copy. EnvConfig config.EnvConfig // RunnerConfig is the configuration of the runner sourced from the test // plan manifest, coalesced with any user-provided overrides. RunnerConfig interface{} // TestPlan is the name of the test plan. TestPlan string // TestCase is the name of the test case. TestCase string // TotalInstances is the total number of instances participating in this test case. TotalInstances int // DisableMetrics disables metrics batching. DisableMetrics bool // Groups enumerates the groups participating in this run. Groups []*RunGroup }
RunInput encapsulates the input options for running a test plan.
type RunOutput ¶
type RunOutput struct { // RunnerID is the ID of the runner used. RunID string // Composition that was used for this run. Composition Composition // Result of the run // Depending on runner, might include: // - Status of run (green, red, yellow :: success, fail, partial success) // - Event log containing various information related to the run, for example: // -- Kubernetes events // -- Kubernetes pod Status // -- etc. Result interface{} }
type RunParams ¶ added in v0.6.0
type RunParams struct { // Artifact specifies the build artifact to use for this run. Artifact string `toml:"artifact" json:"artifact"` // TestParams specify the test parameters to pass down to instances of this // group. TestParams map[string]string `toml:"test_params" json:"test_params"` // Profiles specifies the profiles to capture, and the frequency of capture // of each. Profile support is SDK-dependent, as it relies entirely on the // facilities provided by the language runtime. // // In the case of Go, all profile kinds listed in https://golang.org/pkg/runtime/pprof/#Profile // are supported, taking a frequency expressed in time.Duration string // representation (e.g. 5s for every five seconds). Additionally, a special // profile kind "cpu" is supported; it takes no frequency and it starts a // CPU profile for the entire duration of the test. Profiles map[string]string `toml:"profiles" json:"profiles"` }
type RunRequest ¶
type RunRequest struct { Priority int `json:"priority"` BuildGroups []int `json:"build_groups"` RunIds []string `json:"run_ids"` Composition Composition `json:"composition"` Manifest TestPlanManifest `json:"manifest"` CreatedBy CreatedBy `json:"created_by"` }
RunRequest is the request struct for the `run` function.
type RunResponse ¶
type RunResponse = RunOutput
type Runner ¶
type Runner interface { // ID returns the canonical identifier for this runner. ID() string // Run runs a test case. Run(ctx context.Context, job *RunInput, ow *rpc.OutputWriter) (*RunOutput, error) // ConfigType returns the configuration type of this runner. ConfigType() reflect.Type // CompatibleBuilders returns the IDs of the builders whose artifacts this // runner can work with. CompatibleBuilders() []string // CollectOutputs gathers the outputs from a run, and produces a zip file // with the contents, writing it to the specified io.Writer. CollectOutputs(context.Context, *CollectionInput, *rpc.OutputWriter) error }
Runner is the interface to be implemented by all runners. A runner takes a test plan in executable form and schedules a run of a particular test case within it.
TODO cardinality: do we want to be able to run multiple test cases within a test plan in a single call?
type Runs ¶ added in v0.6.0
type Runs []*Run
func (Runs) Validate ¶ added in v0.6.0
func (rs Runs) Validate(c *Composition) error
type StatusRequest ¶ added in v0.6.0
type StatusRequest struct {
TaskID string `json:"task_id"`
}
type StatusResponse ¶ added in v0.6.0
type TasksFilters ¶ added in v0.6.0
type TasksManager ¶ added in v0.6.0
type TasksRequest ¶ added in v0.6.0
type TasksRequest = TasksFilters
type Terminatable ¶
type Terminatable interface {
TerminateAll(context.Context, *rpc.OutputWriter) error
}
Terminatable is the interface to be implemented by a runner that can be terminated.
type TerminateRequest ¶
type TestCase ¶
type TestCase struct { Name string Instances InstanceConstraints // Parameters that can be passed to this test case. Parameters map[string]Parameter `toml:"params"` }
TestCase represents a configuration for a test case known by the system.
type TestPlanManifest ¶
type TestPlanManifest struct { Name string Builders map[string]config.ConfigMap `toml:"builders"` Runners map[string]config.ConfigMap `toml:"runners"` TestCases []*TestCase `toml:"testcases"` // ExtraSources allows the user to ship extra source directories to the // daemon so they can be considered in the build (e.g. assets, package // overrides, etc.), when certain builders are used. // // It's a mapping of builder => directories. ExtraSources map[string][]string `toml:"extra_sources"` }
TestPlanManifest represents a test plan known by the system.
func (*TestPlanManifest) Describe ¶
func (tp *TestPlanManifest) Describe(w io.Writer)
func (*TestPlanManifest) HasBuilder ¶ added in v0.6.0
func (tp *TestPlanManifest) HasBuilder(name string) bool
func (*TestPlanManifest) HasRunner ¶ added in v0.6.0
func (tp *TestPlanManifest) HasRunner(name string) bool
func (*TestPlanManifest) SupportedBuilders ¶ added in v0.6.0
func (tp *TestPlanManifest) SupportedBuilders() []string
func (*TestPlanManifest) SupportedRunners ¶ added in v0.6.0
func (tp *TestPlanManifest) SupportedRunners() []string
func (*TestPlanManifest) TestCaseByName ¶
func (tp *TestPlanManifest) TestCaseByName(name string) (idx int, tc *TestCase, ok bool)
TestCaseByName returns a test case by name.
type UnpackedSources ¶ added in v0.5.3
type UnpackedSources struct { // BaseDir is the directory containing the plan under ./plan, and an // optional sdk under ./sdk. BaseDir string `json:"base_dir"` // PlanDir is the directory where the test plan's source has been // placed (i.e. BaseSrcPath/plan). PlanDir string `json:"plan_dir"` // SDKDir is the directory where the SDK's source has been placed. It // will be a zero-value if no SDK replacement has been requested, or // BaseSrcPath/sdk otherwise. SDKDir string `json:"sdk_dir"` // ExtraDir is the directory where any extra sources have been unpacked. ExtraDir string `json:"extra_dir"` }
UnpackedSources represents the set of directories where a build job unpacks its sources.