Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func InitTestClusterFactory ¶
func InitTestClusterFactory(impl TestClusterFactory)
InitTestClusterFactory should be called once to provide the implementation of the service. It will be called from a xx_test package that can import the server package.
func InitTestServerFactory ¶
func InitTestServerFactory(impl TestServerFactory)
InitTestServerFactory should be called once to provide the implementation of the service. It will be called from a xx_test package that can import the server package.
Types ¶
type TestClusterFactory ¶
type TestClusterFactory interface {
// New instantiates a test server.
StartTestCluster(t testing.TB, numNodes int, args base.TestClusterArgs) TestClusterInterface
}
TestClusterFactory encompasses the actual implementation of the shim service.
type TestClusterInterface ¶
type TestClusterInterface interface {
NumServers() int
// Server returns the TestServerInterface corresponding to a specific node.
Server(idx int) TestServerInterface
// ServerConn returns a gosql.DB connection to a specific node.
ServerConn(idx int) *gosql.DB
Stopper() *stop.Stopper
}
TestClusterInterface defines TestCluster functionality used by tests.
func StartTestCluster ¶
func StartTestCluster(t testing.TB, numNodes int, args base.TestClusterArgs) TestClusterInterface
StartTestCluster starts up a TestCluster made up of numNodes in-memory testing servers. The cluster should be stopped using Stopper().Stop().
type TestServerFactory ¶
type TestServerFactory interface {
// New instantiates a test server.
New(params base.TestServerArgs) interface{}
}
TestServerFactory encompasses the actual implementation of the shim service.
type TestServerInterface ¶
type TestServerInterface interface {
Stopper() *stop.Stopper
Start(params base.TestServerArgs) error
// ServingAddr returns the server's address.
ServingAddr() string
// KVClient() returns a *client.DB instance for talking to this KV server,
// as an interface{}.
KVClient() interface{}
// KVDB() returns the *kv.DB instance as an interface{}.
KVDB() interface{}
// RPCContext returns the rpc context used by the test server.
RPCContext() *rpc.Context
// LeaseManager() returns the *sql.LeaseManager as an interface{}.
LeaseManager() interface{}
// Gossip returns the gossip used by the TestServer.
Gossip() *gossip.Gossip
// Clock returns the clock used by the TestServer.
Clock() *hlc.Clock
// AdminURL returns the URL for the admin UI.
AdminURL() string
// GetHTTPClient returns an http client connected to the server. It uses the
// context client TLS config.
GetHTTPClient() (http.Client, error)
// MustGetSQLCounter returns the value of a counter metric from the server's
// SQL Executor. Runs in O(# of metrics) time, which is fine for test code.
MustGetSQLCounter(name string) int64
// MustGetSQLNetworkCounter returns the value of a counter metric from the
// server's SQL server. Runs in O(# of metrics) time, which is fine for test
// code.
MustGetSQLNetworkCounter(name string) int64
// WriteSummaries records summaries of time-series data, which is required for
// any tests that query server stats.
WriteSummaries() error
}
TestServerInterface defines test server functionality that tests need; it is implemented by server.TestServer.
func StartServer ¶
func StartServer(t testing.TB, params base.TestServerArgs) ( TestServerInterface, *gosql.DB, *client.DB, )
StartServer creates a test server and sets up a gosql DB connection. The server should be stopped by calling server.Stopper().Stop().
func StartServerRaw ¶
func StartServerRaw(args base.TestServerArgs) (TestServerInterface, error)
StartServerRaw creates and starts a TestServer. Generally StartServer() should be used. However this function can be used directly when opening a connection to the server is not desired.