Documentation ¶
Index ¶
- Constants
- func TempDir(t *testing.T, name string) string
- func TempFile(t *testing.T, name string) *os.File
- func TestLogger(t testing.TB) *log.Logger
- func TestLoggerWithName(t testing.TB, name string) *log.Logger
- func TestWriter(t testing.TB) io.Writer
- type ServerConfigCallback
- type TestACLs
- type TestAddressConfig
- type TestCheck
- type TestKVResponse
- type TestNetworkSegment
- type TestPerformanceConfig
- type TestPortConfig
- type TestServer
- func (s *TestServer) AddAddressableService(t *testing.T, name, status, address string, port int, tags []string)
- func (s *TestServer) AddCheck(t *testing.T, name, serviceID, status string)
- func (s *TestServer) AddService(t *testing.T, name, status string, tags []string)
- func (s *TestServer) GetKV(t *testing.T, key string) []byte
- func (s *TestServer) GetKVString(t *testing.T, key string) string
- func (s *TestServer) JoinLAN(t *testing.T, addr string)
- func (s *TestServer) JoinWAN(t *testing.T, addr string)
- func (s *TestServer) ListKV(t *testing.T, prefix string) []string
- func (s *TestServer) PopulateKV(t *testing.T, data map[string][]byte)
- func (s *TestServer) SetKV(t *testing.T, key string, val []byte)
- func (s *TestServer) SetKVString(t *testing.T, key string, val string)
- func (s *TestServer) Stop() error
- func (s *TestServer) WaitForSerfCheck(t *testing.T)
- func (s *TestServer) Wrap(t *testing.T) *WrappedServer
- type TestServerConfig
- type TestService
- type TestTokens
- type WrappedServer
- func (w *WrappedServer) AddAddressableService(name, status, address string, port int, tags []string)
- func (w *WrappedServer) AddCheck(name, serviceID, status string)
- func (w *WrappedServer) AddService(name, status string, tags []string)
- func (w *WrappedServer) GetKV(key string) []byte
- func (w *WrappedServer) GetKVString(key string) string
- func (w *WrappedServer) JoinLAN(addr string)
- func (w *WrappedServer) JoinWAN(addr string)
- func (w *WrappedServer) ListKV(prefix string) []string
- func (w *WrappedServer) PopulateKV(data map[string][]byte)
- func (w *WrappedServer) SetKV(key string, val []byte)
- func (w *WrappedServer) SetKVString(key string, val string)
Constants ¶
const ( HealthAny = "any" HealthPassing = "passing" HealthWarning = "warning" HealthCritical = "critical" HealthMaint = "maintenance" )
copied from testutil to break circular dependency
Variables ¶
This section is empty.
Functions ¶
func TempDir ¶
TempDir creates a temporary directory within tmpdir with the name 'testname-name'. If the directory cannot be created t.Fatal is called.
Types ¶
type ServerConfigCallback ¶
type ServerConfigCallback func(c *TestServerConfig)
ServerConfigCallback is a function interface which can be passed to NewTestServerConfig to modify the server config.
type TestACLs ¶
type TestACLs struct { Enabled bool `json:"enabled,omitempty"` TokenReplication bool `json:"enable_token_replication,omitempty"` PolicyTTL string `json:"policy_ttl,omitempty"` TokenTTL string `json:"token_ttl,omitempty"` DownPolicy string `json:"down_policy,omitempty"` DefaultPolicy string `json:"default_policy,omitempty"` EnableKeyListPolicy bool `json:"enable_key_list_policy,omitempty"` Tokens TestTokens `json:"tokens,omitempty"` DisabledTTL string `json:"disabled_ttl,omitempty"` }
type TestAddressConfig ¶
type TestAddressConfig struct {
HTTP string `json:"http,omitempty"`
}
TestAddressConfig contains the bind addresses for various components of the Consul server.
type TestCheck ¶
type TestCheck struct { ID string `json:",omitempty"` Name string `json:",omitempty"` ServiceID string `json:",omitempty"` TTL string `json:",omitempty"` }
TestCheck is used to serialize a check definition.
type TestKVResponse ¶
type TestKVResponse struct {
Value string
}
TestKVResponse is what we use to decode KV data.
type TestNetworkSegment ¶
type TestNetworkSegment struct { Name string `json:"name"` Bind string `json:"bind"` Port int `json:"port"` Advertise string `json:"advertise"` }
TestNetworkSegment contains the configuration for a network segment.
type TestPerformanceConfig ¶
type TestPerformanceConfig struct {
RaftMultiplier uint `json:"raft_multiplier,omitempty"`
}
TestPerformanceConfig configures the performance parameters.
type TestPortConfig ¶
type TestPortConfig struct { DNS int `json:"dns,omitempty"` HTTP int `json:"http,omitempty"` HTTPS int `json:"https,omitempty"` SerfLan int `json:"serf_lan,omitempty"` SerfWan int `json:"serf_wan,omitempty"` Server int `json:"server,omitempty"` ProxyMinPort int `json:"proxy_min_port,omitempty"` ProxyMaxPort int `json:"proxy_max_port,omitempty"` }
TestPortConfig configures the various ports used for services provided by the Consul server.
type TestServer ¶
type TestServer struct { Config *TestServerConfig HTTPAddr string HTTPSAddr string LANAddr string WANAddr string HTTPClient *http.Client // contains filtered or unexported fields }
TestServer is the main server wrapper struct.
func NewTestServer ¶
func NewTestServer() (*TestServer, error)
NewTestServer is an easy helper method to create a new Consul test server with the most basic configuration.
func NewTestServerConfig ¶
func NewTestServerConfig(cb ServerConfigCallback) (*TestServer, error)
func NewTestServerConfigT ¶
func NewTestServerConfigT(t *testing.T, cb ServerConfigCallback) (*TestServer, error)
NewTestServerConfig creates a new TestServer, and makes a call to an optional callback function to modify the configuration. If there is an error configuring or starting the server, the server will NOT be running when the function returns (thus you do not need to stop it).
func (*TestServer) AddAddressableService ¶
func (s *TestServer) AddAddressableService(t *testing.T, name, status, address string, port int, tags []string)
AddAddressableService adds a new service to the Consul instance by passing "address" and "port". It is helpful when you need to prepare a fakeService that maybe accessed with in target source code. It also automatically adds a health check with the given status, which can be one of "passing", "warning", or "critical", just like `AddService` does.
func (*TestServer) AddCheck ¶
func (s *TestServer) AddCheck(t *testing.T, name, serviceID, status string)
AddCheck adds a check to the Consul instance. If the serviceID is left empty (""), then the check will be associated with the node. The check status may be "passing", "warning", or "critical".
func (*TestServer) AddService ¶
func (s *TestServer) AddService(t *testing.T, name, status string, tags []string)
AddService adds a new service to the Consul instance. It also automatically adds a health check with the given status, which can be one of "passing", "warning", or "critical".
func (*TestServer) GetKV ¶
func (s *TestServer) GetKV(t *testing.T, key string) []byte
GetKV retrieves a single key and returns its value
func (*TestServer) GetKVString ¶
func (s *TestServer) GetKVString(t *testing.T, key string) string
GetKVString retrieves a value from the store, but returns as a string instead of []byte.
func (*TestServer) JoinLAN ¶
func (s *TestServer) JoinLAN(t *testing.T, addr string)
JoinLAN is used to join local datacenters together.
func (*TestServer) JoinWAN ¶
func (s *TestServer) JoinWAN(t *testing.T, addr string)
JoinWAN is used to join remote datacenters together.
func (*TestServer) ListKV ¶
func (s *TestServer) ListKV(t *testing.T, prefix string) []string
ListKV returns a list of keys present in the KV store. This will list all keys under the given prefix recursively and return them as a slice.
func (*TestServer) PopulateKV ¶
func (s *TestServer) PopulateKV(t *testing.T, data map[string][]byte)
PopulateKV fills the Consul KV with data from a generic map.
func (*TestServer) SetKV ¶
func (s *TestServer) SetKV(t *testing.T, key string, val []byte)
SetKV sets an individual key in the K/V store.
func (*TestServer) SetKVString ¶
func (s *TestServer) SetKVString(t *testing.T, key string, val string)
SetKVString sets an individual key in the K/V store, but accepts a string instead of []byte.
func (*TestServer) Stop ¶
func (s *TestServer) Stop() error
Stop stops the test Consul server, and removes the Consul data directory once we are done.
func (*TestServer) WaitForSerfCheck ¶
func (s *TestServer) WaitForSerfCheck(t *testing.T)
WaitForSerfCheck ensures we have a node with serfHealth check registered Behavior mirrors testrpc.WaitForTestAgent but avoids the dependency cycle in api pkg
func (*TestServer) Wrap ¶
func (s *TestServer) Wrap(t *testing.T) *WrappedServer
Wrap wraps the test server in a `testing.t` for convenience.
For example, the following code snippets are equivalent.
server.JoinLAN(t, "1.2.3.4") server.Wrap(t).JoinLAN("1.2.3.4")
This is useful when you are calling multiple functions and save the wrapped value as another variable to reduce the inclusion of "t".
type TestServerConfig ¶
type TestServerConfig struct { NodeName string `json:"node_name"` NodeID string `json:"node_id"` NodeMeta map[string]string `json:"node_meta,omitempty"` Performance *TestPerformanceConfig `json:"performance,omitempty"` Bootstrap bool `json:"bootstrap,omitempty"` Server bool `json:"server,omitempty"` DataDir string `json:"data_dir,omitempty"` Datacenter string `json:"datacenter,omitempty"` Segments []TestNetworkSegment `json:"segments"` DisableCheckpoint bool `json:"disable_update_check"` LogLevel string `json:"log_level,omitempty"` Bind string `json:"bind_addr,omitempty"` Addresses *TestAddressConfig `json:"addresses,omitempty"` Ports *TestPortConfig `json:"ports,omitempty"` RaftProtocol int `json:"raft_protocol,omitempty"` ACLMasterToken string `json:"acl_master_token,omitempty"` ACLDatacenter string `json:"acl_datacenter,omitempty"` PrimaryDatacenter string `json:"primary_datacenter,omitempty"` ACLDefaultPolicy string `json:"acl_default_policy,omitempty"` ACLEnforceVersion8 bool `json:"acl_enforce_version_8"` ACL TestACLs `json:"acl,omitempty"` Encrypt string `json:"encrypt,omitempty"` CAFile string `json:"ca_file,omitempty"` CertFile string `json:"cert_file,omitempty"` KeyFile string `json:"key_file,omitempty"` VerifyIncoming bool `json:"verify_incoming,omitempty"` VerifyIncomingRPC bool `json:"verify_incoming_rpc,omitempty"` VerifyIncomingHTTPS bool `json:"verify_incoming_https,omitempty"` VerifyOutgoing bool `json:"verify_outgoing,omitempty"` EnableScriptChecks bool `json:"enable_script_checks,omitempty"` Connect map[string]interface{} `json:"connect,omitempty"` EnableDebug bool `json:"enable_debug,omitempty"` ReadyTimeout time.Duration `json:"-"` Stdout, Stderr io.Writer `json:"-"` Args []string `json:"-"` }
TestServerConfig is the main server configuration struct.
type TestService ¶
type TestService struct { ID string `json:",omitempty"` Name string `json:",omitempty"` Tags []string `json:",omitempty"` Address string `json:",omitempty"` Port int `json:",omitempty"` }
TestService is used to serialize a service definition.
type TestTokens ¶
type WrappedServer ¶
type WrappedServer struct {
// contains filtered or unexported fields
}
func (*WrappedServer) AddAddressableService ¶
func (w *WrappedServer) AddAddressableService(name, status, address string, port int, tags []string)
func (*WrappedServer) AddCheck ¶
func (w *WrappedServer) AddCheck(name, serviceID, status string)
func (*WrappedServer) AddService ¶
func (w *WrappedServer) AddService(name, status string, tags []string)
func (*WrappedServer) GetKV ¶
func (w *WrappedServer) GetKV(key string) []byte
func (*WrappedServer) GetKVString ¶
func (w *WrappedServer) GetKVString(key string) string
func (*WrappedServer) JoinLAN ¶
func (w *WrappedServer) JoinLAN(addr string)
func (*WrappedServer) JoinWAN ¶
func (w *WrappedServer) JoinWAN(addr string)
func (*WrappedServer) ListKV ¶
func (w *WrappedServer) ListKV(prefix string) []string
func (*WrappedServer) PopulateKV ¶
func (w *WrappedServer) PopulateKV(data map[string][]byte)
func (*WrappedServer) SetKV ¶
func (w *WrappedServer) SetKV(key string, val []byte)
func (*WrappedServer) SetKVString ¶
func (w *WrappedServer) SetKVString(key string, val string)