Documentation
¶
Overview ¶
Package testutils provides utility functions and behaviors for testing.
Index ¶
- Constants
- func AppendCovEnv(env []string) []string
- func BuildDaemon(extraArgs ...string) (execPath string, cleanup func(), err error)
- func BuildRustNSSLib(t *testing.T, disableCoverage bool, features ...string) (libPath string, rustCovEnv []string)
- func CanRunRustTests(coverageWanted bool) (err error)
- func CoverDirEnv() string
- func CoverDirForTests() string
- func CurrentDir() string
- func GenerateEncryptionKey(brokerName string) string
- func GenerateSessionID(username string) string
- func GetSystemBusConnection(t *testing.T) (*dbus.Conn, error)
- func IsAsan() bool
- func IsRace() bool
- func IsVerbose() bool
- func MakeReadOnly(t *testing.T, dest string)
- func ProjectRoot() string
- func RunDaemon(ctx context.Context, t *testing.T, execPath string, args ...DaemonOption) (socketPath string, stopped chan struct{})
- func RunInBubbleWrap(t *testing.T, testDataPath string, args ...string) (string, error)
- func RunInBubbleWrapWithEnv(t *testing.T, testDataPath string, env []string, args ...string) (string, error)
- func SkipIfCannotRunBubbleWrap(t *testing.T)
- func SleepMultiplier() float64
- func StartBusBrokerMock(cfgDir string, brokerName string) (string, func(), error)
- func StartBusMock() (string, func(), error)
- func StartSystemBusMock() (func(), error)
- func TestFamilyPath(t *testing.T) string
- type BrokerBusMock
- func (b *BrokerBusMock) CancelIsAuthenticated(sessionID string) (dbusErr *dbus.Error)
- func (b *BrokerBusMock) EndSession(sessionID string) (dbusErr *dbus.Error)
- func (b *BrokerBusMock) GetAuthenticationModes(sessionID string, supportedUILayouts []map[string]string) (authenticationModes []map[string]string, dbusErr *dbus.Error)
- func (b *BrokerBusMock) IsAuthenticated(sessionID, authenticationData string) (access, data string, dbusErr *dbus.Error)
- func (b *BrokerBusMock) NewSession(username, lang, mode string) (sessionID, encryptionKey string, dbusErr *dbus.Error)
- func (b *BrokerBusMock) SelectAuthenticationMode(sessionID, authenticationModeName string) (uiLayoutInfo map[string]string, dbusErr *dbus.Error)
- func (b *BrokerBusMock) UserPreCheck(username string) (userinfo string, dbusErr *dbus.Error)
- type DaemonOption
- func WithDBPath(path string) DaemonOption
- func WithEnvironment(env ...string) DaemonOption
- func WithHomeBaseDir(baseDir string) DaemonOption
- func WithOutputFile(outputFile string) DaemonOption
- func WithPidFile(pidFile string) DaemonOption
- func WithPreviousDBState(db string) DaemonOption
- func WithSharedDaemon(shared bool) DaemonOption
- func WithSocketPath(path string) DaemonOption
Constants ¶
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 ¶
AppendCovEnv returns the env needed to enable coverage when running a go binary, if coverage is enabled.
func BuildDaemon ¶
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 ¶
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 GenerateEncryptionKey ¶
GenerateEncryptionKey returns an encryption key that can be used in tests.
func GenerateSessionID ¶
GenerateSessionID returns a sessionID that can be used in tests.
func GetSystemBusConnection ¶
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 ¶
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
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
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 ¶
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 ¶
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 ¶
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.