exec

package
v1.9.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 8, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrExecEmpty indicates that the user specified an empty "exec"
	// field
	ErrExecEmpty = fmt.Errorf(
		"%w: expected non-empty exec field", api.ErrParse,
	)
	// ErrExecInvalid indicates that the user specified an invalid "exec" field
	ErrExecInvalid = fmt.Errorf(
		"%w: invalid exec field", api.ErrParse,
	)
)
View Source
var (
	DefaultTimeout = "10s"
)
View Source
var (
	// ErrUnknownShell returns an ErrParse when an unknown shell is specified
	ErrUnknownShell = fmt.Errorf(
		"%w: unknown shell", api.ErrParse,
	)
)
View Source
var (
	// this is just for testing purposes...
	PluginRef = &plugin{}
)

Functions

func ExecEmpty

func ExecEmpty(node *yaml.Node) error

ExecEmpty returns an ErrExecEmpty with the line/column of the supplied YAML node.

func ExecInvalidShellParse

func ExecInvalidShellParse(err error, node *yaml.Node) error

ExecInvalidShellParse returns an ErrExecInvalid with the error from shlex.Split

func ExecRuntimeError

func ExecRuntimeError(err error) error

ExecRuntimeError returns a RuntimeError with an error from the Exec() call.

func OverrideDefaultTimeout added in v1.7.1

func OverrideDefaultTimeout(d string)

OverrideDefaultTimeout is only used in testing...

func Plugin

func Plugin() api.Plugin

Plugin returns the HTTP gdt plugin

func UnknownShell

func UnknownShell(shell string) error

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,
	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

func (d *Defaults) UnmarshalYAML(node *yaml.Node) error

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

func (e *Expect) UnmarshalYAML(node *yaml.Node) error

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 *api.FlexStrings `yaml:"contains,omitempty"`
	// ContainsNone is one or more strings, *none of which* should be present in
	// the contents of the pipe
	ContainsNone *api.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 *api.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 {
	api.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) Base

func (s *Spec) Base() *api.Spec

func (*Spec) Eval

func (s *Spec) Eval(
	ctx context.Context,
) (*api.Result, error)

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.

Errors returned by Eval() are **RuntimeErrors**, not failures in assertions.

func (*Spec) Retry added in v1.9.0

func (s *Spec) Retry() *api.Retry

func (*Spec) SetBase

func (s *Spec) SetBase(b api.Spec)

func (*Spec) Timeout added in v1.9.0

func (s *Spec) Timeout() *api.Timeout

func (*Spec) UnmarshalYAML

func (s *Spec) UnmarshalYAML(node *yaml.Node) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL