testutil

package
v2.4.0-beta.0 Latest Latest
Warning

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

Go to latest
Published: Aug 22, 2026 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// This error string is expected when attempting to connect to a TCP socket
	// for a service which actively refuses the connection.
	// (e.g. attempting to connect using http to an https endpoint).
	// It should be "connection refused" as per the TCP RFC.
	// https://www.rfc-editor.org/rfc/rfc793
	ExpectedConnectionRefusedError = "connection refused"

	NginxAlpineIndexHTMLSnippet = "<title>Welcome to nginx!</title>"
	WordpressIndexHTMLSnippet   = "<title>WordPress &rsaquo; Installation</title>"

	// Source: https://gist.github.com/cpuguy83/fcf3041e5d8fb1bb5c340915aabeebe0
	NonDistBlobImage = "ghcr.io/cpuguy83/non-dist-blob:latest@sha256:8859ffb0bb604463fe19f1e606ceda9f4f8f42e095bf78c42458cf6da7b5c7e7"
	// Foreign layer digest
	NonDistBlobDigest = "sha256:be691b1535726014cdf3b715ff39361b19e121ca34498a9ceea61ad776b9c215"
)

Variables

View Source
var (
	AlpineImage         = GetTestImage("alpine")
	BusyboxImage        = GetTestImage("busybox")
	DockerAuthImage     = GetTestImage("docker_auth")
	FluentdImage        = GetTestImage("fluentd")
	GolangImage         = GetTestImage("golang")
	KuboImage           = GetTestImage("kubo")
	MariaDBImage        = GetTestImage("mariadb")
	NginxAlpineImage    = GetTestImage("nginx")
	RegistryImageStable = GetTestImage("registry")
	SystemdImage        = GetTestImage("stargz")
	WordpressImage      = GetTestImage("wordpress")

	CommonImage = AlpineImage

	FedoraESGZImage = GetTestImage("fedora_esgz") // eStargz
	FfmpegSociImage = GetTestImage("ffmpeg_soci") // SOCI
	UbuntuImage     = GetTestImage("ubuntu")      // Large enough for testing soci index creation
	CoreDNSImage    = GetTestImage("coredns")
)

Functions

func GetAllowModifyUsers added in v2.1.0

func GetAllowModifyUsers() bool

func GetDaemonIsKillable

func GetDaemonIsKillable() bool

func GetEnableIPv6

func GetEnableIPv6() bool

func GetEnableKubernetes

func GetEnableKubernetes() bool

func GetFlakyEnvironment

func GetFlakyEnvironment() bool

func GetTarget

func GetTarget() string

func GetTestImage added in v2.1.4

func GetTestImage(key string) string

func GetTestImageConfigDigest added in v2.1.4

func GetTestImageConfigDigest(key, platform string) string

func GetTestImageManifestDigest added in v2.1.4

func GetTestImageManifestDigest(key, platform string) string

func GetTestImageMediaType added in v2.1.4

func GetTestImageMediaType(key string) string

func GetTestImagePlatformMediaType added in v2.1.4

func GetTestImagePlatformMediaType(key, platform string) string

func GetTestImageRaw added in v2.1.4

func GetTestImageRaw(key, platform string) string

func GetTestImageSchemaVersion added in v2.1.4

func GetTestImageSchemaVersion(key string) int

func GetTestImageWithoutTag added in v2.1.4

func GetTestImageWithoutTag(key string) string

func LoadProject

func LoadProject(fileName, projectName string, envMap map[string]string) (*compose.Project, error)

Load is used only for unit testing.

func M

func M(m *testing.M)

func RootlessKitIPv6Enabled

func RootlessKitIPv6Enabled(ctx context.Context) bool

RootlessKitIPv6Enabled reports whether the running RootlessKit parent process supports IPv6.

Types

type ComposeDir

type ComposeDir struct {
	// contains filtered or unexported fields
}

func NewComposeDir

func NewComposeDir(t tig.T, dockerComposeYAML string) *ComposeDir

func (*ComposeDir) CleanUp

func (cd *ComposeDir) CleanUp()

func (*ComposeDir) ProjectName

func (cd *ComposeDir) ProjectName() string

func (*ComposeDir) WriteFile

func (cd *ComposeDir) WriteFile(name, content string)

func (*ComposeDir) YAMLFullPath

func (cd *ComposeDir) YAMLFullPath() string

type TestImage added in v2.1.3

type TestImage struct {
	Ref           string                  `yaml:"ref"`
	Tag           string                  `yaml:"tag,omitempty"`
	SchemaVersion int                     `yaml:"schemaversion,omitempty"`
	MediaType     string                  `yaml:"mediatype,omitempty"`
	Digest        string                  `yaml:"digest,omitempty"`
	Variants      []string                `yaml:"variants,omitempty"`
	Manifests     map[string]manifestInfo `yaml:"manifests,omitempty"`
}

Directories

Path Synopsis
portlock provides a mechanism for containers to acquire and release ports they plan to expose, and a wait mechanism This allows tests dependent on running containers to always parallelize without having to worry about port collision with any other test Note that this does NOT protect against trying to use a port that is already used by an unrelated third-party service or container Also note that *generally* finding a free port is not easy: - to just "listen" and see if it works won't work for containerized services that are DNAT-ed (plus, that would be racy) - inspecting iptables instead (or in addition to) may work for containers, but this depends on how networking has been set (and yes, it is also racy) Our approach here is optimistic: tests are responsible for calling Acquire and Release
portlock provides a mechanism for containers to acquire and release ports they plan to expose, and a wait mechanism This allows tests dependent on running containers to always parallelize without having to worry about port collision with any other test Note that this does NOT protect against trying to use a port that is already used by an unrelated third-party service or container Also note that *generally* finding a free port is not easy: - to just "listen" and see if it works won't work for containerized services that are DNAT-ed (plus, that would be racy) - inspecting iptables instead (or in addition to) may work for containers, but this depends on how networking has been set (and yes, it is also racy) Our approach here is optimistic: tests are responsible for calling Acquire and Release

Jump to

Keyboard shortcuts

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