Documentation ¶
Index ¶
- Constants
- func TempDir(t *testing.T, name string) string
- func TempFile(t *testing.T, name string) *os.File
- 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 ¶ added in v0.8.4
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 ¶ added in v0.5.1
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 ¶ added in v0.5.1
type TestAddressConfig struct {
HTTP string `json:"http,omitempty"`
}
TestAddressConfig contains the bind addresses for various components of the Consul server.
type TestCheck ¶ added in v0.5.1
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 ¶ added in v0.5.1
type TestKVResponse struct {
Value string
}
TestKVResponse is what we use to decode KV data.
type TestNetworkSegment ¶ added in v0.9.3
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 ¶ added in v0.7.0
type TestPerformanceConfig struct {
RaftMultiplier uint `json:"raft_multiplier,omitempty"`
}
TestPerformanceConfig configures the performance parameters.
type TestPortConfig ¶ added in v0.5.1
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 ¶ added in v0.5.1
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 ¶ added in v0.5.1
func NewTestServer() (*TestServer, error)
NewTestServer is an easy helper method to create a new Consul test server with the most basic configuration.
func NewTestServerConfig ¶ added in v0.5.1
func NewTestServerConfig(cb ServerConfigCallback) (*TestServer, error)
func NewTestServerConfigT ¶ added in v0.8.4
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 ¶ added in v0.8.2
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 ¶ added in v0.5.1
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 ¶ added in v0.5.1
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 ¶ added in v0.5.1
func (s *TestServer) GetKV(t *testing.T, key string) []byte
GetKV retrieves a single key and returns its value
func (*TestServer) GetKVString ¶ added in v0.8.0
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 ¶ added in v0.5.1
func (s *TestServer) JoinLAN(t *testing.T, addr string)
JoinLAN is used to join local datacenters together.
func (*TestServer) JoinWAN ¶ added in v0.5.1
func (s *TestServer) JoinWAN(t *testing.T, addr string)
JoinWAN is used to join remote datacenters together.
func (*TestServer) ListKV ¶ added in v0.5.1
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 ¶ added in v0.5.1
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 ¶ added in v0.5.1
func (s *TestServer) SetKV(t *testing.T, key string, val []byte)
SetKV sets an individual key in the K/V store.
func (*TestServer) SetKVString ¶ added in v0.8.0
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 ¶ added in v0.5.1
func (s *TestServer) Stop() error
Stop stops the test Consul server, and removes the Consul data directory once we are done.
func (*TestServer) WaitForSerfCheck ¶ added in v1.3.0
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 ¶ added in v0.8.0
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 ¶ added in v0.5.1
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 ¶ added in v0.5.1
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 ¶ added in v0.8.0
type WrappedServer struct {
// contains filtered or unexported fields
}
func (*WrappedServer) AddAddressableService ¶ added in v0.8.2
func (w *WrappedServer) AddAddressableService(name, status, address string, port int, tags []string)
func (*WrappedServer) AddCheck ¶ added in v0.8.0
func (w *WrappedServer) AddCheck(name, serviceID, status string)
func (*WrappedServer) AddService ¶ added in v0.8.0
func (w *WrappedServer) AddService(name, status string, tags []string)
func (*WrappedServer) GetKV ¶ added in v0.8.0
func (w *WrappedServer) GetKV(key string) []byte
func (*WrappedServer) GetKVString ¶ added in v0.8.0
func (w *WrappedServer) GetKVString(key string) string
func (*WrappedServer) JoinLAN ¶ added in v0.8.0
func (w *WrappedServer) JoinLAN(addr string)
func (*WrappedServer) JoinWAN ¶ added in v0.8.0
func (w *WrappedServer) JoinWAN(addr string)
func (*WrappedServer) ListKV ¶ added in v0.8.0
func (w *WrappedServer) ListKV(prefix string) []string
func (*WrappedServer) PopulateKV ¶ added in v0.8.0
func (w *WrappedServer) PopulateKV(data map[string][]byte)
func (*WrappedServer) SetKV ¶ added in v0.8.0
func (w *WrappedServer) SetKV(key string, val []byte)
func (*WrappedServer) SetKVString ¶ added in v0.8.0
func (w *WrappedServer) SetKVString(key string, val string)