Documentation ¶
Overview ¶
sqltest is a scenario testing framework for evaluating MySQL compatibility.
Index ¶
- Constants
- func RunEmbedSuites(t *testing.T, client Client, testNames ...string) error
- func RunEmbedSuitesWithRegex(t *testing.T, client Client, regexes ...string) error
- func RunLocalSuite(t *testing.T, client Client) error
- func RunScenarioTest(t *testing.T, client Client, test *ScenarioTest)
- func RunScenarioTestFiles(t *testing.T, testFilenames []string)
- type AuthConfig
- type AuthMethod
- type Client
- type ClientConfig
- type ClientTLSConfig
- type Config
- type Line
- type MySQLClient
- func (client *MySQLClient) Close() error
- func (client *MySQLClient) CreateDatabase(name string) error
- func (client *MySQLClient) DropDatabase(name string) error
- func (client *MySQLClient) Open() error
- func (client *MySQLClient) Ping() error
- func (client *MySQLClient) Query(query string, args ...interface{}) (*sql.Rows, error)
- func (client *MySQLClient) Use(name string) error
- type PgxClient
- func (client *PgxClient) Close() error
- func (client *PgxClient) Conn() *pgx.Conn
- func (client *PgxClient) CreateDatabase(name string) error
- func (client *PgxClient) DropDatabase(name string) error
- func (client *PgxClient) Open() error
- func (client *PgxClient) Ping() error
- func (client *PgxClient) Query(query string, args ...interface{}) (pgx.Rows, error)
- func (client *PgxClient) Use(name string) error
- type PqClient
- func (client *PqClient) Close() error
- func (client *PqClient) CreateDatabase(name string) error
- func (client *PqClient) DB() *sql.DB
- func (client *PqClient) DropDatabase(name string) error
- func (client *PqClient) Open() error
- func (client *PqClient) Ping() error
- func (client *PqClient) Query(query string, args ...interface{}) (*sql.Rows, error)
- func (client *PqClient) Use(name string) error
- type QueryResponse
- type QueryResponseData
- type QueryResponseRow
- type QueryResponseRows
- type Scenario
- type ScenarioTest
- func (tst *ScenarioTest) LoadFile(filename string) error
- func (tst *ScenarioTest) LoadFileWithBasename(basename string) error
- func (tst *ScenarioTest) Name() string
- func (tst *ScenarioTest) ParseBytes(name string, b []byte) error
- func (tst *ScenarioTest) Run() error
- func (tst *ScenarioTest) SetClient(c Client)
- type Suite
- type TLSConfig
Constants ¶
const ( ProgramName = "go-sqltest" TestRunDescription = ProgramName + "(" + Version + ")" )
const (
QueryResponseRowsKey = "rows"
)
const (
ScenarioTestFileExt = "qst"
)
const (
SuiteDefaultTestDirectory = "./test"
)
const TestDBNamePrefix = "sqltest"
const (
Version = "v1.4.2"
)
Variables ¶
This section is empty.
Functions ¶
func RunEmbedSuites ¶ added in v0.9.5
RunEmbedSuites runs the embedded test suites.
func RunEmbedSuitesWithRegex ¶ added in v1.2.1
RunEmbedSuitesWithRegex runs the embedded test suites with the specified regular expressions.
func RunLocalSuite ¶ added in v0.9.3
RunLocalSuite runs the local test suite.
func RunScenarioTest ¶ added in v1.2.0
func RunScenarioTest(t *testing.T, client Client, test *ScenarioTest)
RunScenarioTest runs the specified test.
func RunScenarioTestFiles ¶ added in v0.9.3
Types ¶
type AuthConfig ¶ added in v1.4.2
type AuthConfig struct { User string Password string Auth AuthMethod }
AuthConfig stores authentication configuration parameters.
func NewAuthConfig ¶ added in v1.4.2
func NewAuthConfig() *AuthConfig
NewAuthConfig returns a default authentication configuration instance.
func (*AuthConfig) SetAuth ¶ added in v1.4.2
func (config *AuthConfig) SetAuth(auth AuthMethod)
SetAuth sets an authentication method.
func (*AuthConfig) SetPassword ¶ added in v1.4.2
func (config *AuthConfig) SetPassword(password string)
SetPassword sets a password.
func (*AuthConfig) SetUser ¶ added in v1.4.2
func (config *AuthConfig) SetUser(user string)
SetUser sets a user name.
type AuthMethod ¶ added in v1.4.2
type AuthMethod int
AuthMethod represents an authentication method.
const ( AuthdNone AuthMethod = iota AuthPlain AuthMD5 AuthSCRAMSHA256 )
type Client ¶ added in v0.9.1
type Client interface { // ClientConfig represents a client configuration interface. ClientConfig // ClientTLSConfig represents a client TLS configuration interface. ClientTLSConfig // Open opens a database specified by the internal configuration. Open() error // Close closes the opened database. Close() error // Use uses a database. Use(name string) error // Ping pings the opened database. Ping() error // CreateDatabase creates a database. CreateDatabase(name string) error // DropDatabase drops a database. DropDatabase(name string) error // Query executes a query. Query(query string, args ...interface{}) (*sql.Rows, error) }
Client represents a client interface for SQL databases.
func NewMySQLClient ¶ added in v0.9.1
func NewMySQLClient() Client
NewMySQLClient returns a client instance.
func NewPostgresClient ¶ added in v0.9.6
func NewPostgresClient() Client
NewPostgresClient returns a new defaultPostgreSQL client.
type ClientConfig ¶ added in v1.4.0
type ClientConfig interface { // SetHost sets a host name. SetHost(host string) // SetPort sets a port number. SetPort(port int) // SetUser sets a user name. SetUser(user string) // SetPassword sets a password. SetPassword(passwd string) // SetDatabase sets a database name. SetDatabase(db string) }
ClientConfig represents a client configuration interface.
type ClientTLSConfig ¶ added in v1.4.0
type ClientTLSConfig interface { // TLSEnabled returns true if TLS is enabled. TLSEnabled() bool // SetClientKeyFile sets a SSL client key file. SetClientKeyFile(file string) // SetClientCertFile sets a SSL client certificate file. SetClientCertFile(file string) // SetRootCertFile sets a SSL root certificate file. SetRootCertFile(file string) }
ClientTLSConfig represents a client TLS configuration interface.
type Config ¶ added in v0.9.1
type Config struct { Host string Port int Database string *AuthConfig *TLSConfig }
Config stores server configuration parammeters.
func NewDefaultConfig ¶ added in v0.9.1
func NewDefaultConfig() *Config
NewDefaultConfig returns a default configuration instance.
func (*Config) SetDatabase ¶ added in v0.9.1
SetDatabase sets a host database.
type MySQLClient ¶ added in v0.9.1
type MySQLClient struct { *Config // contains filtered or unexported fields }
MySQLClient represents a client for MySQL server.
func (*MySQLClient) Close ¶ added in v0.9.1
func (client *MySQLClient) Close() error
Close closes opens a database specified by the internal configuration.
func (*MySQLClient) CreateDatabase ¶ added in v0.9.2
func (client *MySQLClient) CreateDatabase(name string) error
CreateDatabase creates a specified database.
func (*MySQLClient) DropDatabase ¶ added in v0.9.2
func (client *MySQLClient) DropDatabase(name string) error
DropDatabase dtops a specified database.
func (*MySQLClient) Open ¶ added in v0.9.1
func (client *MySQLClient) Open() error
Open opens a database specified by the internal configuration. nolint: gosec, exhaustruct, staticcheck
func (*MySQLClient) Ping ¶ added in v1.3.2
func (client *MySQLClient) Ping() error
Ping pings the opened database.
func (*MySQLClient) Query ¶ added in v0.9.1
func (client *MySQLClient) Query(query string, args ...interface{}) (*sql.Rows, error)
Query executes a query that returns rows.
func (*MySQLClient) Use ¶ added in v0.9.2
func (client *MySQLClient) Use(name string) error
Use sets a target database.
type PgxClient ¶ added in v1.2.3
type PgxClient struct { *Config // contains filtered or unexported fields }
PgxClient represents a client for PostgreSQL server.
func NewPgxClient ¶ added in v1.2.3
func NewPgxClient() *PgxClient
NewPgxClient returns a Pgx client instance.
func (*PgxClient) Conn ¶ added in v1.2.3
func (client *PgxClient) Conn() *pgx.Conn
Conn returns a connected database connection.
func (*PgxClient) CreateDatabase ¶ added in v1.2.3
CreateDatabase creates a specified database.
func (*PgxClient) DropDatabase ¶ added in v1.2.3
DropDatabase dtops a specified database.
type PqClient ¶ added in v1.2.3
type PqClient struct { *Config // contains filtered or unexported fields }
PqClient represents a client for PostgreSQL server.
func NewPqClient ¶ added in v1.2.3
func NewPqClient() *PqClient
NewPqClient returns a new lib/pq client.
func (*PqClient) Close ¶ added in v1.2.3
Close closes opens a database specified by the internal configuration.
func (*PqClient) CreateDatabase ¶ added in v1.2.3
CreateDatabase creates a specified database.
func (*PqClient) DropDatabase ¶ added in v1.2.3
DropDatabase dtops a specified database.
func (*PqClient) Open ¶ added in v1.2.3
Open opens a database specified by the internal configuration.
type QueryResponse ¶ added in v0.9.3
type QueryResponse struct {
Data QueryResponseData
}
QueryResponse represents a response of a query.
func NewQueryResponse ¶ added in v0.9.3
func NewQueryResponse() *QueryResponse
NewQueryResponse returns a response instance.
func NewQueryResponseWithString ¶ added in v0.9.3
func NewQueryResponseWithString(json string) (*QueryResponse, error)
NewQueryResponseWithString returns a response instance of the specified JSON response.
func (*QueryResponse) HasRow ¶ added in v0.9.3
func (res *QueryResponse) HasRow(row interface{}) error
HasRow returns true when the response has a specified row, otherwise false. nolint: gocyclo
func (*QueryResponse) ParseString ¶ added in v0.9.3
func (res *QueryResponse) ParseString(jsonStr string) error
ParseString parses a specified string response as a JSON data.
func (*QueryResponse) Rows ¶ added in v0.9.3
func (res *QueryResponse) Rows() (QueryResponseRows, error)
Rows returns response rows with true when the response has any rows, otherwise nil and false.
func (*QueryResponse) String ¶ added in v0.9.3
func (res *QueryResponse) String() string
String returns the string representation.
type QueryResponseData ¶ added in v0.9.3
type QueryResponseData = map[string]interface{}
QueryResponseData defines a JSON response data type.
type QueryResponseRow ¶ added in v0.9.3
type QueryResponseRow = map[string]interface{}
QueryResponseRow defines a JSON response row type.
type QueryResponseRows ¶ added in v0.9.3
type QueryResponseRows = []interface{}
QueryResponseRows defines a JSON response rows type.
type Scenario ¶ added in v0.9.3
type Scenario struct { Filename string Queries []string Expecteds []*QueryResponse }
Scenario represents a scenario.
func NewScenario ¶ added in v0.9.3
func NewScenario() *Scenario
NewScenario return a scenario instance.
func NewScenarioWithBytes ¶ added in v0.9.3
NewScenarioWithBytes return a scenario instance for the specified test scenario bytes.
func NewScenarioWithFile ¶ added in v0.9.3
NewScenarioWithFile return a scenario instance for the specified test scenario file.
func (*Scenario) ParseBytes ¶ added in v0.9.3
ParseBytes parses the specified scenario bytes.
func (*Scenario) ParseLineStrings ¶ added in v0.9.3
ParseLineStrings parses the specified scenario line strings.
type ScenarioTest ¶ added in v0.9.3
type ScenarioTest struct { Scenario *Scenario // contains filtered or unexported fields }
ScenarioTest represents a scenario test.
func NewScenarioTest ¶ added in v0.9.3
func NewScenarioTest() *ScenarioTest
NewScenarioTest returns a scenario test instance.
func NewScenarioTestWithBytes ¶ added in v0.9.3
func NewScenarioTestWithBytes(name string, b []byte) (*ScenarioTest, error)
NewScenarioTestWithBytes return a scenario test instance for the specified test scenario bytes.
func NewScenarioTestWithFile ¶ added in v0.9.3
func NewScenarioTestWithFile(filename string) (*ScenarioTest, error)
NewScenarioTestWithFile return a scenario test instance for the specified test scenario file.
func (*ScenarioTest) LoadFile ¶ added in v0.9.3
func (tst *ScenarioTest) LoadFile(filename string) error
LoadFile loads a specified scenario test file.
func (*ScenarioTest) LoadFileWithBasename ¶ added in v0.9.3
func (tst *ScenarioTest) LoadFileWithBasename(basename string) error
LoadFileWithBasename loads a scenario test file which has specified basename.
func (*ScenarioTest) Name ¶ added in v0.9.3
func (tst *ScenarioTest) Name() string
Name returns the loaded senario name.
func (*ScenarioTest) ParseBytes ¶ added in v0.9.3
func (tst *ScenarioTest) ParseBytes(name string, b []byte) error
ParseBytes loads a specified scenario test bytes.
func (*ScenarioTest) Run ¶ added in v0.9.3
func (tst *ScenarioTest) Run() error
Run runs a loaded scenario test.
func (*ScenarioTest) SetClient ¶ added in v0.9.3
func (tst *ScenarioTest) SetClient(c Client)
SetClient sets a client for testing.
type Suite ¶ added in v0.9.3
type Suite struct {
// contains filtered or unexported fields
}
Suite represents a scenario test suite.
func NewSuite ¶ added in v0.9.3
func NewSuite() *Suite
NewSuite returns a scenario test suite instance.
func NewSuiteWithDirectory ¶ added in v0.9.3
NewSuiteWithDirectory returns a scenario test suite instance which loads under the specified directory.
func NeweEmbedSuite ¶ added in v0.9.3
NeweEmbedSuite returns a scenario test suite instance which loads under the specified directory.
func (*Suite) ExtractScenarioMatchingTests ¶ added in v1.2.1
func (suite *Suite) ExtractScenarioMatchingTests(regexes ...string) ([]*ScenarioTest, error)
func (*Suite) ExtractScenarioTests ¶ added in v1.0.0
func (suite *Suite) ExtractScenarioTests(names ...string) ([]*ScenarioTest, error)
ExtractScenarioTests returns scenario tests with the specified names.
func (*Suite) Run ¶ added in v0.9.3
Run runs all loaded scenario tests. The method stops the testing when a scenario test is aborted, and the following tests are not run.
func (*Suite) ScenarioTests ¶ added in v1.0.0
func (suite *Suite) ScenarioTests() []*ScenarioTest
ScenarioTests returns all loaded scenario tests.
type TLSConfig ¶ added in v1.4.0
TLSConfig represents a TLS configuration.
func NewTLSConfig ¶ added in v1.4.0
func NewTLSConfig() *TLSConfig
NewTLSConfig returns a new TLS configuration. nolint: gosec, exhaustruct
func (*TLSConfig) SetClientCertFile ¶ added in v1.4.0
SetClientCertFile sets a SSL client certificate file.
func (*TLSConfig) SetClientKeyFile ¶ added in v1.4.0
SetClientKeyFile sets a SSL client key file.
func (*TLSConfig) SetRootCertFile ¶ added in v1.4.0
SetRootCertFile sets a SSL root certificate file.
func (*TLSConfig) TLSEnabled ¶ added in v1.4.0
TLSEnabled returns true if TLS is enabled.