Documentation ¶
Index ¶
- func EnsureFrozenImagesLinux(testEnv *Execution) error
- func ProtectAll(t testing.TB, testEnv *Execution)
- func ProtectContainers(t testing.TB, testEnv *Execution)
- func ProtectImages(t testing.TB, testEnv *Execution)
- func ProtectNetworks(t testing.TB, testEnv *Execution)
- func ProtectPlugins(t testing.TB, testEnv *Execution)
- func ProtectVolumes(t testing.TB, testEnv *Execution)
- type Execution
- func (e *Execution) APIClient() client.APIClient
- func (e *Execution) Clean(t testing.TB)
- func (e *Execution) DaemonAPIVersion() string
- func (e *Execution) HasExistingImage(t testing.TB, reference string) bool
- func (e *Execution) IsLocalDaemon() bool
- func (e *Execution) IsRemoteDaemon() bool
- func (e *Execution) IsRootless() bool
- func (e *Execution) IsUserNamespace() bool
- func (e *Execution) IsUserNamespaceInKernel() bool
- func (e *Execution) Print()
- func (e *Execution) ProtectContainer(t testing.TB, containers ...string)
- func (e *Execution) ProtectImage(t testing.TB, images ...string)
- func (e *Execution) ProtectNetwork(t testing.TB, networks ...string)
- func (e *Execution) ProtectPlugin(t testing.TB, plugins ...string)
- func (e *Execution) ProtectVolume(t testing.TB, volumes ...string)
- type PlatformDefaults
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EnsureFrozenImagesLinux ¶
EnsureFrozenImagesLinux loads frozen test images into the daemon if they aren't already loaded
func ProtectAll ¶
ProtectAll protects the existing environment (containers, images, networks, volumes, and, on Linux, plugins) from being cleaned up at the end of test runs
func ProtectContainers ¶
ProtectContainers protects existing containers from being cleaned up at the end of test runs
func ProtectImages ¶
ProtectImages protects existing images and on linux frozen images from being cleaned up at the end of test runs
func ProtectNetworks ¶
ProtectNetworks protects existing networks from being cleaned up at the end of test runs
func ProtectPlugins ¶
ProtectPlugins protects existing plugins from being cleaned up at the end of test runs
func ProtectVolumes ¶
ProtectVolumes protects existing volumes from being cleaned up at the end of test runs
Types ¶
type Execution ¶
type Execution struct { DaemonInfo types.Info OSType string PlatformDefaults PlatformDefaults // contains filtered or unexported fields }
Execution contains information about the current test execution and daemon under test
func FromClient ¶
FromClient creates a new Execution environment from the passed in client
func New ¶
New creates a new Execution struct This is configured using the env client (see client.FromEnv)
func (*Execution) Clean ¶
Clean the environment, preserving protected objects (images, containers, ...) and removing everything else. It's meant to run after any tests so that they don't depend on each others.
func (*Execution) DaemonAPIVersion ¶
DaemonAPIVersion returns the negotiated daemon api version
func (*Execution) HasExistingImage ¶
HasExistingImage checks whether there is an image with the given reference. Note that this is done by filtering and then checking whether there were any results -- so ambiguous references might result in false-positives.
func (*Execution) IsLocalDaemon ¶
IsLocalDaemon is true if the daemon under test is on the same host as the test process.
Deterministically working out the environment in which CI is running to evaluate whether the daemon is local or remote is not possible through a build tag.
For example Windows to Linux CI under Jenkins tests the 64-bit Windows binary build with the daemon build tag, but calls a remote Linux daemon.
We can't just say if Windows then assume the daemon is local as at some point, we will be testing the Windows CLI against a Windows daemon.
Similarly, it will be perfectly valid to also run CLI tests from a Linux CLI (built with the daemon tag) against a Windows daemon.
func (*Execution) IsRemoteDaemon ¶
IsRemoteDaemon is true if the daemon under test is on different host as the test process.
func (*Execution) IsRootless ¶
IsRootless returns whether the rootless mode is enabled
func (*Execution) IsUserNamespace ¶
IsUserNamespace returns whether the user namespace remapping is enabled
func (*Execution) IsUserNamespaceInKernel ¶
IsUserNamespaceInKernel returns whether the kernel supports user namespaces
func (*Execution) Print ¶
func (e *Execution) Print()
Print the execution details to stdout TODO: print everything
func (*Execution) ProtectContainer ¶
ProtectContainer adds the specified container(s) to be protected in case of clean
func (*Execution) ProtectImage ¶
ProtectImage adds the specified image(s) to be protected in case of clean
func (*Execution) ProtectNetwork ¶
ProtectNetwork adds the specified network(s) to be protected in case of clean
func (*Execution) ProtectPlugin ¶
ProtectPlugin adds the specified plugin(s) to be protected in case of clean
type PlatformDefaults ¶
type PlatformDefaults struct { BaseImage string VolumesConfigPath string ContainerStoragePath string }
PlatformDefaults are defaults values for the platform of the daemon under test