Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // DefaultWaitTime holds a default value for WaitForStopEventConfiguration // when used within a NewBackgroundVerification function. DefaultWaitTime = 20 * time.Millisecond // DefaultOnWait is a implementation that will be called by default for each // wait performed by WaitForStopEvent when used within // NewBackgroundVerification function. DefaultOnWait = func(bc BackgroundContext, self WaitForStopEventConfiguration) { } )
Functions ¶
func WaitForStopEvent ¶
func WaitForStopEvent(bc BackgroundContext, w WaitForStopEventConfiguration)
WaitForStopEvent will wait until upgrade suite sends a stop event to it. After that happen a handler is invoked to verify environment state and report failures.
Types ¶
type BackgroundContext ¶
type BackgroundContext struct {
T *testing.T
Log *zap.SugaredLogger
Stop <-chan struct{}
}
BackgroundContext is a upgrade test execution context that will be passed down to each handler of BackgroundOperation. It contains a stop event channel. Until stop event is sent user may use zap.SugaredLogger to log state of execution if necessary.
type BackgroundOperation ¶
type BackgroundOperation interface {
// Name is a human readable operation title, and it will be used in t.Run.
Name() string
// Setup method may be used to set up environment before upgrade/downgrade is
// performed.
Setup() func(c Context)
// Handler will be executed in background while upgrade/downgrade is being
// executed. It can be used to constantly validate environment during that
// time and/or wait for StopEvent being sent. After StopEvent is received
// user should validate environment, clean up resources, and report found
// issues to testing.T forwarded in StepEvent.
Handler() func(bc BackgroundContext)
}
BackgroundOperation represents a upgrade test operation that will be performed in background while other operations is running. To achieve that a passed BackgroundContext should be used to synchronize it's operations with Ready and Stop channels.
func NewBackgroundOperation ¶
func NewBackgroundOperation(name string, setup func(c Context), handler func(bc BackgroundContext), ) BackgroundOperation
NewBackgroundOperation creates a new background operation or test that can be notified to stop its operation.
func NewBackgroundVerification ¶
func NewBackgroundVerification(name string, setup func(c Context), verify func(c Context)) BackgroundOperation
NewBackgroundVerification is convenience function to easily setup a background operation that will setup environment and then verify environment status after receiving a stop event.
type Configuration ¶
Configuration holds required and optional configuration to run upgrade tests.
type Context ¶
type Context struct {
T *testing.T
Log *zap.SugaredLogger
}
Context is an object that is passed to every operation. It contains testing.T for error reporting and zap.SugaredLogger for unbuffered logging.
type Installations ¶
Installations holds a list of operations that will install Knative components in different versions.
type LogConfig ¶
type LogConfig struct {
// Config from which the zap.Logger be created.
// Deprecated: This config doesn't have effect. Use Options instead.
Config zap.Config
// Options holds options for the zap.Logger.
Options []zap.Option
}
LogConfig holds the logger configuration. It allows for passing just the logger configuration options.
type Operation ¶
type Operation interface {
// Name is a human readable operation title, and it will be used in t.Run.
Name() string
// Handler is a function that will be called to perform an operation.
Handler() func(c Context)
}
Operation represents a upgrade test operation like test or installation that can be provided by specific component or reused in aggregating components.
func NewOperation ¶
NewOperation creates a new upgrade operation or test.
type Suite ¶
type Suite struct {
Tests Tests
Installations Installations
}
Suite represents a upgrade tests suite that can be executed and will perform execution in predictable manner.
func (*Suite) Execute ¶
func (s *Suite) Execute(c Configuration)
Execute the Suite of upgrade tests with a Configuration given. When the suite includes Continual tests the number of logical CPUs usable by the test process must be at least <NUMBER OF CONTINUAL TESTS> + 1. The -parallel test flag or GOMAXPROCS environment variable might be used to adjust the settings.
type SuiteExecutor ¶
type SuiteExecutor interface {
Execute(c Configuration)
}
SuiteExecutor is to execute upgrade test suite.
type Tests ¶
type Tests struct {
PreUpgrade []Operation
PostUpgrade []Operation
PostDowngrade []Operation
Continual []BackgroundOperation
}
Tests holds a list of operations for various part of upgrade suite.
type WaitForStopEventConfiguration ¶
type WaitForStopEventConfiguration struct {
Name string
OnStop func()
OnWait func(bc BackgroundContext, self WaitForStopEventConfiguration)
WaitTime time.Duration
}
WaitForStopEventConfiguration holds a values to be used be WaitForStopEvent function. OnStop will be called when a stop event is sent. OnWait will be invoked in a loop while waiting, and each wait act is driven by WaitTime amount.