1
0
Fork 0

System-level multi-node request tests

master
Philip O'Toole 1 year ago
parent a7efd9721c
commit b284b04f85

@ -38,74 +38,120 @@ func Test_StoreClientSideBySide(t *testing.T) {
t.Fatalf("failed to execute on local: %s", err.Error())
}
if exp, got := "[{}]", asJSON(res); exp != got {
t.Fatalf("unexpected results, expt %s, got %s", exp, got)
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
res, err = client.Execute(executeRequestFromString("CREATE TABLE bar (id INTEGER NOT NULL PRIMARY KEY, name TEXT)"), leaderAddr, NO_CREDS, shortWait)
if err != nil {
t.Fatalf("failed to execute via remote: %s", err.Error())
}
if exp, got := "[{}]", asJSON(res); exp != got {
t.Fatalf("unexpected results, expt %s, got %s", exp, got)
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
// ==============================================================================
res, err = node.Store.Execute(executeRequestFromString(`INSERT INTO foo(name) VALUES("fiona")`))
if err != nil {
t.Fatalf("failed to execute on local: %s", err.Error())
}
if exp, got := `[{"last_insert_id":1,"rows_affected":1}]`, asJSON(res); exp != got {
t.Fatalf("unexpected results, expt %s, got %s", exp, got)
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
res, err = client.Execute(executeRequestFromString(`INSERT INTO bar(name) VALUES("fiona")`), leaderAddr, NO_CREDS, shortWait)
if err != nil {
t.Fatalf("failed to execute via remote: %s", err.Error())
}
if exp, got := `[{"last_insert_id":1,"rows_affected":1}]`, asJSON(res); exp != got {
t.Fatalf("unexpected results, expt %s, got %s", exp, got)
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
// ==============================================================================
rows, err := node.Store.Query(queryRequestFromString(`SELECT * FROM foo`))
if err != nil {
t.Fatalf("failed to query on local: %s", err.Error())
}
if exp, got := `[{"columns":["id","name"],"types":["integer","text"],"values":[[1,"fiona"]]}]`, asJSON(rows); exp != got {
t.Fatalf("unexpected results, expt %s, got %s", exp, got)
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
rows, err = node.Store.Query(queryRequestFromString(`SELECT * FROM bar`))
results, err := node.Store.Request(executeQueryRequestFromString(`SELECT * FROM foo`))
if err != nil {
t.Fatalf("failed to query on local: %s", err.Error())
t.Fatalf("failed to request on local: %s", err.Error())
}
if exp, got := `[{"columns":["id","name"],"types":["integer","text"],"values":[[1,"fiona"]]}]`, asJSON(rows); exp != got {
t.Fatalf("unexpected results, expt %s, got %s", exp, got)
if exp, got := `[{"columns":["id","name"],"types":["integer","text"],"values":[[1,"fiona"]]}]`, asJSON(results); exp != got {
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
rows, err = client.Query(queryRequestFromString(`SELECT * FROM foo`), leaderAddr, NO_CREDS, shortWait)
if err != nil {
t.Fatalf("failed to query via remote: %s", err.Error())
}
if exp, got := `[{"columns":["id","name"],"types":["integer","text"],"values":[[1,"fiona"]]}]`, asJSON(rows); exp != got {
t.Fatalf("unexpected results, expt %s, got %s", exp, got)
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
results, err = client.Request(executeQueryRequestFromString(`SELECT * FROM foo`), leaderAddr, NO_CREDS, shortWait)
if err != nil {
t.Fatalf("failed to query via remote: %s", err.Error())
}
if exp, got := `[{"columns":["id","name"],"types":["integer","text"],"values":[[1,"fiona"]]}]`, asJSON(results); exp != got {
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
// ==============================================================================
rows, err = node.Store.Query(queryRequestFromString(`SELECT * FROM bar`))
if err != nil {
t.Fatalf("failed to query on local: %s", err.Error())
}
if exp, got := `[{"columns":["id","name"],"types":["integer","text"],"values":[[1,"fiona"]]}]`, asJSON(rows); exp != got {
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
results, err = node.Store.Request(executeQueryRequestFromString(`SELECT * FROM bar`))
if err != nil {
t.Fatalf("failed to request on local: %s", err.Error())
}
if exp, got := `[{"columns":["id","name"],"types":["integer","text"],"values":[[1,"fiona"]]}]`, asJSON(results); exp != got {
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
rows, err = client.Query(queryRequestFromString(`SELECT * FROM bar`), leaderAddr, NO_CREDS, shortWait)
if err != nil {
t.Fatalf("failed to query via remote: %s", err.Error())
}
if exp, got := `[{"columns":["id","name"],"types":["integer","text"],"values":[[1,"fiona"]]}]`, asJSON(rows); exp != got {
t.Fatalf("unexpected results, expt %s, got %s", exp, got)
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
results, err = client.Request(executeQueryRequestFromString(`SELECT * FROM bar`), leaderAddr, NO_CREDS, shortWait)
if err != nil {
t.Fatalf("failed to query via remote: %s", err.Error())
}
if exp, got := `[{"columns":["id","name"],"types":["integer","text"],"values":[[1,"fiona"]]}]`, asJSON(results); exp != got {
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
// ==============================================================================
rows, err = node.Store.Query(queryRequestFromString(`SELECT * FROM qux`))
if err != nil {
t.Fatalf("failed to query on local: %s", err.Error())
}
if exp, got := `[{"error":"no such table: qux"}]`, asJSON(rows); exp != got {
t.Fatalf("unexpected results, expt %s, got %s", exp, got)
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
results, err = node.Store.Request(executeQueryRequestFromString(`SELECT * FROM qux`))
if err != nil {
t.Fatalf("failed to request on local: %s", err.Error())
}
if exp, got := `[{"error":"no such table: qux"}]`, asJSON(results); exp != got {
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
rows, err = client.Query(queryRequestFromString(`SELECT * FROM qux`), leaderAddr, NO_CREDS, shortWait)
if err != nil {
t.Fatalf("failed to query via remote: %s", err.Error())
}
if exp, got := `[{"error":"no such table: qux"}]`, asJSON(rows); exp != got {
t.Fatalf("unexpected results, expt %s, got %s", exp, got)
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
results, err = client.Request(executeQueryRequestFromString(`SELECT * FROM qux`), leaderAddr, NO_CREDS, shortWait)
if err != nil {
t.Fatalf("failed to query via remote: %s", err.Error())
}
if exp, got := `[{"error":"no such table: qux"}]`, asJSON(results); exp != got {
t.Fatalf("unexpected results, exp %s, got %s", exp, got)
}
}
@ -302,6 +348,27 @@ func queryRequestFromStrings(s []string) *command.QueryRequest {
}
}
func executeQueryRequestFromString(s string) *command.ExecuteQueryRequest {
return executeQueryRequestFromStrings([]string{s})
}
// executeQueryRequestFromStrings converts a slice of strings into a command.ExecuteQueryRequest
func executeQueryRequestFromStrings(s []string) *command.ExecuteQueryRequest {
stmts := make([]*command.Statement, len(s))
for i := range s {
stmts[i] = &command.Statement{
Sql: s[i],
}
}
return &command.ExecuteQueryRequest{
Request: &command.Request{
Statements: stmts,
Transaction: false,
},
Timings: false,
}
}
func mustNewDialer(header byte, remoteEncrypted, skipVerify bool) *tcp.Dialer {
var tlsConfig *tls.Config
var err error

Loading…
Cancel
Save