testutil

package
v0.8.2 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2018 License: MPL-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// TravisRunEnv is an environment variable that is set if being run by
	// Travis.
	TravisRunEnv = "CI"
)

Variables

This section is empty.

Functions

func AssertUntil added in v0.6.0

func AssertUntil(until time.Duration, test testFn, error errorFn)

AssertUntil asserts the test function passes throughout the given duration. Otherwise error is called on failure.

func IsTravis added in v0.3.0

func IsTravis() bool

func SkipSlow added in v0.8.0

func SkipSlow(t testing.T)

SkipSlow skips a slow test unless the NOMAD_SLOW_TEST environment variable is set.

func TestMultiplier added in v0.3.0

func TestMultiplier() int64

TestMultiplier returns a multiplier for retries and waits given environment the tests are being run under.

func Timeout added in v0.8.0

func Timeout(original time.Duration) time.Duration

Timeout takes the desired timeout and increases it if running in Travis

func VaultVersion added in v0.5.3

func VaultVersion() (string, error)

VaultVersion returns the Vault version as a string or an error if it couldn't be determined

func WaitForLeader

func WaitForLeader(t testing.T, rpc rpcFn)

func WaitForResult

func WaitForResult(test testFn, error errorFn)

func WaitForResultRetries added in v0.3.0

func WaitForResultRetries(retries int64, test testFn, error errorFn)

Types

type ACLConfig added in v0.7.0

type ACLConfig struct {
	Enabled bool `json:"enabled"`
}

ACLConfig is used to configure ACLs

type Advertise struct {
	HTTP string `json:"http,omitempty"`
	RPC  string `json:"rpc,omitempty"`
	Serf string `json:"serf,omitempty"`
}

Advertise is used to configure the addresses to advertise

type ClientConfig

type ClientConfig struct {
	Enabled bool `json:"enabled"`
}

ClientConfig is used to configure the client

type Consul added in v0.8.0

type Consul struct {
	Address string `json:"address,omitempty"`
	Auth    string `json:"auth,omitempty"`
	Token   string `json:"token,omitempty"`
}

Consul is used to configure the communication with Consul

type PortsConfig

type PortsConfig struct {
	HTTP int `json:"http,omitempty"`
	RPC  int `json:"rpc,omitempty"`
	Serf int `json:"serf,omitempty"`
}

PortsConfig is used to configure the network ports we use.

type ServerConfig

type ServerConfig struct {
	Enabled         bool `json:"enabled"`
	BootstrapExpect int  `json:"bootstrap_expect"`
	RaftProtocol    int  `json:"raft_protocol,omitempty"`
}

ServerConfig is used to configure the nomad server.

type ServerConfigCallback

type ServerConfigCallback func(c *TestServerConfig)

ServerConfigCallback is a function interface which can be passed to NewTestServerConfig to modify the server config.

type TestServer

type TestServer struct {
	Config *TestServerConfig

	HTTPAddr   string
	SerfAddr   string
	HTTPClient *http.Client
	// contains filtered or unexported fields
}

TestServer is the main server wrapper struct.

func NewTestServer

func NewTestServer(t testing.T, cb ServerConfigCallback) *TestServer

NewTestServer creates a new TestServer, and makes a call to an optional callback function to modify the configuration.

func (*TestServer) Stop

func (s *TestServer) Stop()

Stop stops the test Nomad server, and removes the Nomad data directory once we are done.

type TestServerConfig

type TestServerConfig struct {
	NodeName          string        `json:"name,omitempty"`
	DataDir           string        `json:"data_dir,omitempty"`
	Region            string        `json:"region,omitempty"`
	DisableCheckpoint bool          `json:"disable_update_check"`
	LogLevel          string        `json:"log_level,omitempty"`
	Consul            *Consul       `json:"consul,omitempty"`
	AdvertiseAddrs    *Advertise    `json:"advertise,omitempty"`
	Ports             *PortsConfig  `json:"ports,omitempty"`
	Server            *ServerConfig `json:"server,omitempty"`
	Client            *ClientConfig `json:"client,omitempty"`
	Vault             *VaultConfig  `json:"vault,omitempty"`
	ACL               *ACLConfig    `json:"acl,omitempty"`
	DevMode           bool          `json:"-"`
	Stdout, Stderr    io.Writer     `json:"-"`
}

TestServerConfig is the main server configuration struct.

type TestVault added in v0.5.0

type TestVault struct {
	Addr      string
	HTTPAddr  string
	RootToken string
	Config    *config.VaultConfig
	Client    *vapi.Client
	// contains filtered or unexported fields
}

TestVault wraps a test Vault server launched in dev mode, suitable for testing.

func NewTestVault added in v0.5.0

func NewTestVault(t testing.T) *TestVault

NewTestVault returns a new TestVault instance that has yet to be started

func NewTestVaultDelayed added in v0.6.0

func NewTestVaultDelayed(t testing.T) *TestVault

NewTestVaultDelayed returns a test Vault server that has not been started. Start must be called and it is the callers responsibility to deal with any port conflicts that may occur and retry accordingly.

func (*TestVault) Start added in v0.5.0

func (tv *TestVault) Start() error

Start starts the test Vault server and waits for it to respond to its HTTP API

func (*TestVault) Stop added in v0.5.0

func (tv *TestVault) Stop()

Stop stops the test Vault server

type VaultConfig added in v0.5.0

type VaultConfig struct {
	Enabled bool `json:"enabled"`
}

VaultConfig is used to configure Vault

Jump to

Keyboard shortcuts

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