Documentation
¶
Index ¶
Constants ¶
View Source
const ( DefaultEnvoyImageVersion = "envoyproxy/envoy:contrib-v1.30-latest" DefaultWaitDuration = 5 * time.Second DefaultTickDuration = 100 * time.Millisecond )
Variables ¶
View Source
var ( SkipTests = flag.String("skip-tests", "", "Comma-separated list of tests to skip") RunTest = flag.String("run-test", "", "Name of a single test to run, instead of the whole suite") )
Functions ¶
This section is empty.
Types ¶
type TestCase ¶
type TestCase struct {
// Name of the test case.
Name string
// Name of the filter.
FilterName string
// Description of the test case.
Description string
// Absolute directory path of the Envoy filter.
EnvoyFilterAbsDir string
// Absolute directory path of the Envoy configuration.
EnvoyConfigAbsDir string
// Name of the Envoy filter.
EnvoyFilterName string
// Name of the Envoy configuration.
EnvoyConfigName string
// Indicates whether the test case should be run in parallel.
Parallel bool
// Indicates whether the test case should explicitly be skipped.
Skip bool
// Test function for the test case.
Test func(t *testing.T, kit *TestSuiteKit)
// contains filtered or unexported fields
}
TestCase represents a test case for the test suite.
type TestSuite ¶
type TestSuite struct {
// FilterLocation defines the pattern for locating the filter directory.
// It defaults to "$PWD/filters/{filter}/{filename}".
FilterLocation string
// EnvoyImageVersion specifies the version of the Envoy image to be used.
EnvoyImageVersion string
// EnvoyPort specifies the port number on which Envoy will listen.
EnvoyPort int
// AdminPort specifies the port number for Envoy's admin interface.
AdminPort int
// RunTest specifies the specific test to run.
RunTest string
// SkipTests specifies a set of tests to be skipped.
SkipTests sets.Set[string]
}
TestSuite represents a test suite configuration.
func NewTestSuite ¶
func NewTestSuite(opts TestSuiteOptions) *TestSuite
type TestSuiteKit ¶
type TestSuiteKit struct {
// WaitDuration is the duration to wait for certain operations.
WaitDuration time.Duration
// TickDuration is the duration between ticks.
TickDuration time.Duration
// contains filtered or unexported fields
}
TestSuiteKit represents a test suite kit that contains various configuration options.
func (*TestSuiteKit) CheckEnvoyLog ¶
func (s *TestSuiteKit) CheckEnvoyLog(expressions ...string) bool
func (*TestSuiteKit) GetAdminHost ¶
func (s *TestSuiteKit) GetAdminHost() string
func (*TestSuiteKit) GetEnvoyHost ¶
func (s *TestSuiteKit) GetEnvoyHost() string
func (*TestSuiteKit) ShowEnvoyLog ¶ added in v0.4.0
func (s *TestSuiteKit) ShowEnvoyLog() string
func (*TestSuiteKit) StartEnvoy ¶
func (s *TestSuiteKit) StartEnvoy(t *testing.T) (kill func())
type TestSuiteOptions ¶
type TestSuiteOptions struct {
// EnvoyImageVersion specifies the version of the Envoy image to use.
EnvoyImageVersion string
// EnvoyPortStartFrom specifies the starting port number for Envoy instances.
EnvoyPortStartFrom int
// AdminPortStartFrom specifies the starting port number for Envoy admin interfaces.
AdminPortStartFrom int
// SkipTests is a list of test names to skip.
SkipTests []string
// FilterLocation defines the pattern for locating the filter directory.
// If it is not provided, the default pattern would be "$PWD/filters/{filter}/{filename}".
// Available substitutions:
// - {filter} -> filter name
// - {filename} -> file name, which are envoy.yaml and filter.so. Both can be overriden through the TestCase.
// Example usage:
// FilterLocation: "/home/ardikabs/Workspaces/gonvoy/e2e/filters/{filter}/{filename}" ->
// 1. Given 'filter' as the filter name, for a filter named 'helloworld', it translates to /home/ardikabs/Workspaces/gonvoy/e2e/filters/helloworld
// 2. For the envoy.yaml file, it translates to /home/ardikabs/Workspaces/gonvoy/e2e/filters/helloworld/envoy.yaml
// 3. For the filter.so file, it translates to /home/ardikabs/Workspaces/gonvoy/e2e/filters/helloworld/filter.so
FilterLocation string
}
TestSuiteOptions represents the options for configuring a test suite.
Click to show internal directories.
Click to hide internal directories.