testutils

package
v0.5.6 Latest Latest
Warning

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

Go to latest
Published: Jun 18, 2025 License: GPL-3.0 Imports: 31 Imported by: 0

Documentation

Overview

Package testutils provides utility functions and behaviors for testing.

Index

Constants

View Source
const (

	// IDSeparator is the value used to append values to the sessionID in the broker mock.
	IDSeparator = "_separator_"
)

Variables

This section is empty.

Functions

func AppendCovEnv

func AppendCovEnv(env []string) []string

AppendCovEnv returns the env needed to enable coverage when running a go binary, if coverage is enabled.

func BuildDaemon

func BuildDaemon(extraArgs ...string) (execPath string, cleanup func(), err error)

BuildDaemon builds the daemon executable and returns the binary path.

func BuildRustNSSLib added in v0.5.0

func BuildRustNSSLib(t *testing.T, disableCoverage bool, features ...string) (libPath string, rustCovEnv []string)

BuildRustNSSLib builds the NSS library and links the compiled file to libPath.

func CanRunRustTests

func CanRunRustTests(coverageWanted bool) (err error)

CanRunRustTests returns if we can run rust tests via cargo on this machine. It checks for code coverage report if supported.

func CoverDirEnv

func CoverDirEnv() string

CoverDirEnv returns the cover dir env variable to run a go binary, if coverage is enabled.

func CoverDirForTests

func CoverDirForTests() string

CoverDirForTests parses the test arguments and return the cover profile directory, if coverage is enabled.

func CurrentDir

func CurrentDir() string

CurrentDir returns the current file directory.

func GenerateEncryptionKey

func GenerateEncryptionKey(brokerName string) string

GenerateEncryptionKey returns an encryption key that can be used in tests.

func GenerateSessionID

func GenerateSessionID(username string) string

GenerateSessionID returns a sessionID that can be used in tests.

func GetSystemBusConnection

func GetSystemBusConnection(t *testing.T) (*dbus.Conn, error)

GetSystemBusConnection returns a connection to the system bus with a safety check to avoid mistakenly connecting to the actual system bus.

func IsAsan

func IsAsan() bool

IsAsan returns whether the tests are running with address sanitizer.

func IsRace

func IsRace() bool

IsRace returns whether the tests are running with thread sanitizer.

func IsVerbose

func IsVerbose() bool

IsVerbose returns whether the tests are running in verbose mode.

func MakeReadOnly

func MakeReadOnly(t *testing.T, dest string)

MakeReadOnly makes dest read only and restore permission on cleanup.

func ProjectRoot

func ProjectRoot() string

ProjectRoot returns the absolute path to the project root.

func RunDaemon

func RunDaemon(ctx context.Context, t *testing.T, execPath string, args ...DaemonOption) (socketPath string, stopped chan struct{})

RunDaemon runs the daemon in a separate process and returns the socket path and a channel that will be closed when the daemon stops.

func RunInBubbleWrap added in v0.5.0

func RunInBubbleWrap(t *testing.T, testDataPath string, args ...string) (string, error)

RunInBubbleWrap runs the passed commands in bubble wrap sandbox.

func RunInBubbleWrapWithEnv added in v0.5.0

func RunInBubbleWrapWithEnv(t *testing.T, testDataPath string, env []string, args ...string) (string, error)

RunInBubbleWrapWithEnv runs the passed commands in bubble wrap sandbox with env variables.

func SkipIfCannotRunBubbleWrap added in v0.5.0

func SkipIfCannotRunBubbleWrap(t *testing.T)

SkipIfCannotRunBubbleWrap checks whether we can run tests running in bubblewrap or skip the tests otherwise.

func SleepMultiplier

func SleepMultiplier() float64

SleepMultiplier returns the sleep multiplier to be used in tests.

func StartBusBrokerMock

func StartBusBrokerMock(cfgDir string, brokerName string) (string, func(), error)

StartBusBrokerMock starts the D-Bus service and exports it on the system bus. It returns the configuration file path for the exported broker.

func StartBusMock

func StartBusMock() (string, func(), error)

StartBusMock starts a mock dbus daemon and returns its address and a cancel function to stop it.

func StartSystemBusMock

func StartSystemBusMock() (func(), error)

StartSystemBusMock starts a mock dbus daemon and returns a cancel function to stop it.

This function uses t.Setenv to set the DBUS_SYSTEM_BUS_ADDRESS environment, so it shouldn't be used in parallel tests that rely on the mentioned variable.

func TestFamilyPath

func TestFamilyPath(t *testing.T) string

TestFamilyPath returns the path of the dir for storing fixtures and other files related to the test.

Types

type BrokerBusMock

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

BrokerBusMock is the D-Bus object that will answer calls for the broker mock.

func (*BrokerBusMock) CancelIsAuthenticated

func (b *BrokerBusMock) CancelIsAuthenticated(sessionID string) (dbusErr *dbus.Error)

CancelIsAuthenticated cancels an ongoing IsAuthenticated call if it exists.

func (*BrokerBusMock) EndSession

func (b *BrokerBusMock) EndSession(sessionID string) (dbusErr *dbus.Error)

EndSession returns default values to be used in tests or an error if requested.

func (*BrokerBusMock) GetAuthenticationModes

func (b *BrokerBusMock) GetAuthenticationModes(sessionID string, supportedUILayouts []map[string]string) (authenticationModes []map[string]string, dbusErr *dbus.Error)

GetAuthenticationModes returns default values to be used in tests or an error if requested.

func (*BrokerBusMock) IsAuthenticated

func (b *BrokerBusMock) IsAuthenticated(sessionID, authenticationData string) (access, data string, dbusErr *dbus.Error)

IsAuthenticated returns default values to be used in tests or an error if requested.

func (*BrokerBusMock) NewSession

func (b *BrokerBusMock) NewSession(username, lang, mode string) (sessionID, encryptionKey string, dbusErr *dbus.Error)

NewSession returns default values to be used in tests or an error if requested.

func (*BrokerBusMock) SelectAuthenticationMode

func (b *BrokerBusMock) SelectAuthenticationMode(sessionID, authenticationModeName string) (uiLayoutInfo map[string]string, dbusErr *dbus.Error)

SelectAuthenticationMode returns default values to be used in tests or an error if requested.

func (*BrokerBusMock) UserPreCheck

func (b *BrokerBusMock) UserPreCheck(username string) (userinfo string, dbusErr *dbus.Error)

UserPreCheck returns default values to be used in tests or an error if requested.

type DaemonOption

type DaemonOption func(*daemonOptions)

DaemonOption represents an optional function that can be used to override some of the daemon default values.

func WithDBPath added in v0.5.0

func WithDBPath(path string) DaemonOption

WithDBPath overrides the default database path of the daemon.

func WithEnvironment

func WithEnvironment(env ...string) DaemonOption

WithEnvironment overrides the default environment of the daemon.

func WithHomeBaseDir added in v0.5.0

func WithHomeBaseDir(baseDir string) DaemonOption

WithHomeBaseDir sets the base path for the user home directories.

func WithOutputFile added in v0.5.0

func WithOutputFile(outputFile string) DaemonOption

WithOutputFile sets the path where the process log will be saved.

func WithPidFile added in v0.5.0

func WithPidFile(pidFile string) DaemonOption

WithPidFile sets the path where the process pid will be saved while running. The pidFile is also special because when it gets removed, authd is stopped.

func WithPreviousDBState

func WithPreviousDBState(db string) DaemonOption

WithPreviousDBState initializes the database of the daemon with a preexistent database.

func WithSharedDaemon added in v0.5.0

func WithSharedDaemon(shared bool) DaemonOption

WithSharedDaemon sets whether the daemon is shared between tests.

func WithSocketPath

func WithSocketPath(path string) DaemonOption

WithSocketPath overrides the default socket path of the daemon.

Directories

Path Synopsis
Package golden provides utilities to compare and update golden files in tests.
Package golden provides utilities to compare and update golden files in tests.

Jump to

Keyboard shortcuts

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