docker: Index | Files

package environment

import ""


Package Files

clean.go environment.go protect.go

func EnsureFrozenImagesLinux Uses

func EnsureFrozenImagesLinux(testEnv *Execution) error

EnsureFrozenImagesLinux loads frozen test images into the daemon if they aren't already loaded

func ProtectAll Uses

func ProtectAll(t testing.TB, testEnv *Execution)

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 Uses

func ProtectContainers(t testing.TB, testEnv *Execution)

ProtectContainers protects existing containers from being cleaned up at the end of test runs

func ProtectImages Uses

func ProtectImages(t testing.TB, testEnv *Execution)

ProtectImages protects existing images and on linux frozen images from being cleaned up at the end of test runs

func ProtectNetworks Uses

func ProtectNetworks(t testing.TB, testEnv *Execution)

ProtectNetworks protects existing networks from being cleaned up at the end of test runs

func ProtectPlugins Uses

func ProtectPlugins(t testing.TB, testEnv *Execution)

ProtectPlugins protects existing plugins from being cleaned up at the end of test runs

func ProtectVolumes Uses

func ProtectVolumes(t testing.TB, testEnv *Execution)

ProtectVolumes protects existing volumes from being cleaned up at the end of test runs

type Execution Uses

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 Uses

func FromClient(c *client.Client) (*Execution, error)

FromClient creates a new Execution environment from the passed in client

func New Uses

func New() (*Execution, error)

New creates a new Execution struct This is configured using the env client (see client.FromEnv)

func (*Execution) APIClient Uses

func (e *Execution) APIClient() client.APIClient

APIClient returns an APIClient connected to the daemon under test

func (*Execution) Clean Uses

func (e *Execution) Clean(t testing.TB)

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 Uses

func (e *Execution) DaemonAPIVersion() string

DaemonAPIVersion returns the negotiated daemon api version

func (*Execution) HasExistingImage Uses

func (e *Execution) HasExistingImage(t testing.TB, reference string) bool

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 Uses

func (e *Execution) IsLocalDaemon() bool

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 Uses

func (e *Execution) IsRemoteDaemon() bool

IsRemoteDaemon is true if the daemon under test is on different host as the test process.

func (*Execution) IsRootless Uses

func (e *Execution) IsRootless() bool

IsRootless returns whether the rootless mode is enabled

func (*Execution) IsUserNamespace Uses

func (e *Execution) IsUserNamespace() bool

IsUserNamespace returns whether the user namespace remapping is enabled

func (*Execution) IsUserNamespaceInKernel Uses

func (e *Execution) IsUserNamespaceInKernel() bool

IsUserNamespaceInKernel returns whether the kernel supports user namespaces

func (*Execution) Print Uses

func (e *Execution) Print()

Print the execution details to stdout TODO: print everything

func (*Execution) ProtectContainer Uses

func (e *Execution) ProtectContainer(t testing.TB, containers ...string)

ProtectContainer adds the specified container(s) to be protected in case of clean

func (*Execution) ProtectImage Uses

func (e *Execution) ProtectImage(t testing.TB, images ...string)

ProtectImage adds the specified image(s) to be protected in case of clean

func (*Execution) ProtectNetwork Uses

func (e *Execution) ProtectNetwork(t testing.TB, networks ...string)

ProtectNetwork adds the specified network(s) to be protected in case of clean

func (*Execution) ProtectPlugin Uses

func (e *Execution) ProtectPlugin(t testing.TB, plugins ...string)

ProtectPlugin adds the specified plugin(s) to be protected in case of clean

func (*Execution) ProtectVolume Uses

func (e *Execution) ProtectVolume(t testing.TB, volumes ...string)

ProtectVolume adds the specified volume(s) to be protected in case of clean

type PlatformDefaults Uses

type PlatformDefaults struct {
    BaseImage            string
    VolumesConfigPath    string
    ContainerStoragePath string

PlatformDefaults are defaults values for the platform of the daemon under test

Package environment imports 13 packages (graph) and is imported by 6 packages. Updated 2020-12-24. Refresh now. Tools for package owners.