Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrExecEmpty indicates that the user specified an empty "exec" // field ErrExecEmpty = fmt.Errorf( "%w: expected non-empty exec field", gdterrors.ErrParse, ) // ErrExecInvalid indicates that the user specified an invalid "exec" field ErrExecInvalid = fmt.Errorf( "%w: invalid exec field", gdterrors.ErrParse, ) )
var ( // ErrUnknownShell returns an ErrParse when an unknown shell is specified ErrUnknownShell = fmt.Errorf( "%w: unknown shell", errors.ErrParse, ) )
Functions ¶
func ExecEmpty ¶
func ExecEmpty(node *yaml.Node) error
ExecEmpty returns an ErrExecEmpty with the line/column of the supplied YAML node.
func ExecInvalidShellParse ¶
ExecInvalidShellParse returns an ErrExecInvalid with the error from shlex.Split
func ExecRuntimeError ¶
ExecRuntimeError returns a RuntimeError with an error from the Exec() call.
func UnknownShell ¶
UnknownShell returns a wrapped version of ErrParse that indicates the user specified an unknown shell.
Types ¶
type Action ¶ added in v1.2.0
type Action struct { // Exec is the exact command to execute. // // You may execute more than one command but must include the `shell` field // to indicate that the command should be run in a shell. It is best // practice, however, to simply use multiple `exec` specs instead of // executing multiple commands in a single shell call. Exec string `yaml:"exec"` // Shell is the specific shell to use in executing the command. If empty // (the default), no shell is used to execute the command and instead the // operating system's `exec` family of calls is used. Shell string `yaml:"shell,omitempty"` }
Action describes a single execution of one or more commands via the operating system's `exec` family of functions.
func (*Action) Do ¶ added in v1.2.0
func (a *Action) Do( ctx context.Context, t *testing.T, outbuf *bytes.Buffer, errbuf *bytes.Buffer, exitcode *int, ) error
Do performs a single command or shell execution returning the corresponding exit code and any runtime error. The `outbuf` and `errbuf` buffers will be filled with the contents of the command's stdout and stderr pipes respectively.
type Defaults ¶
type Defaults struct {
// contains filtered or unexported fields
}
Defaults is the known exec plugin defaults collection
func (*Defaults) UnmarshalYAML ¶
type Expect ¶
type Expect struct { // ExitCode is the expected exit code for the executed command. The default // (0) is the universal successful exit code, so you only need to set this // if you expect a non-successful result from executing the command. ExitCode int `yaml:"exit-code,omitempty"` // Out has things that are expected in the stdout response Out *PipeExpect `yaml:"out,omitempty"` // Err has things that are expected in the stderr response Err *PipeExpect `yaml:"err,omitempty"` }
Expect contains the assertions about an Exec Spec's actions
func (*Expect) UnmarshalYAML ¶
type On ¶ added in v1.2.0
type On struct { // Fail contains one or more actions to take if any of a Spec's assertions // fail. // // For example, if you wanted to grep a log file in the event that no // connectivity on a particular IP:PORT combination could be made you might // do this: // // “`yaml // tests: // - exec: nc -z $HOST $PORT // on: // fail: // exec: grep ERROR /var/log/myapp.log // “` // // The `grep ERROR /var/log/myapp.log` command will only be executed if // there is no connectivity to $HOST:$PORT and the results of that grep // will be directed to the test's output. You can use the `gdt.WithDebug()` // function to configure additional `io.Writer`s to direct this output to. Fail *Action `yaml:"fail,omitempty"` }
On describes actions that can be taken upon certain conditions.
type PipeExpect ¶
type PipeExpect struct { // ContainsAll is one or more strings that *all* must be present in the // contents of the pipe ContainsAll *gdttypes.FlexStrings `yaml:"contains,omitempty"` // ContainsNone is one or more strings, *none of which* should be present in // the contents of the pipe ContainsNone *gdttypes.FlexStrings `yaml:"contains-none-of,omitempty"` // ContainsOneOf is one or more strings of which *at least one* must be // present in the contents of the pipe ContainsAny *gdttypes.FlexStrings `yaml:"contains-one-of,omitempty"` }
PipeExpect contains assertions about the contents of a pipe
func (*PipeExpect) UnmarshalYAML ¶ added in v1.3.0
func (e *PipeExpect) UnmarshalYAML(node *yaml.Node) error
type Spec ¶
type Spec struct { gdttypes.Spec Action // Assert is an object containing the conditions that the Spec will assert. Assert *Expect `yaml:"assert,omitempty"` // On is an object containing actions to take upon certain conditions. On *On `yaml:"on,omitempty"` }
Spec describes a single Spec that executes one or more commands via the operating system's `exec` family of functions.
func (*Spec) Eval ¶
Eval performs an action and evaluates the results of that action, returning a Result that informs the Scenario about what failed or succeeded about the Evaluable's conditions.