|
|
|
@ -9,11 +9,18 @@ import (
|
|
|
|
|
"github.com/rqlite/rqlite/tcp"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
const shortWait = 5 * time.Second
|
|
|
|
|
const (
|
|
|
|
|
shortWait = 5 * time.Second
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
|
NO_CREDS = (*cluster.Credentials)(nil)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// Test_StoreClientSideBySide operates on the same store directly, and via
|
|
|
|
|
// RPC, and ensures results are the same for basically the same operation.
|
|
|
|
|
func Test_StoreClientSideBySide(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
node := mustNewLeaderNode()
|
|
|
|
|
defer node.Deprovision()
|
|
|
|
|
leaderAddr, err := node.Store.LeaderAddr()
|
|
|
|
@ -30,7 +37,7 @@ func Test_StoreClientSideBySide(t *testing.T) {
|
|
|
|
|
if exp, got := "[{}]", asJSON(res); exp != got {
|
|
|
|
|
t.Fatalf("unexpected results, expt %s, got %s", exp, got)
|
|
|
|
|
}
|
|
|
|
|
res, err = client.Execute(executeRequestFromString("CREATE TABLE bar (id INTEGER NOT NULL PRIMARY KEY, name TEXT)"), leaderAddr, nil, shortWait)
|
|
|
|
|
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())
|
|
|
|
|
}
|
|
|
|
@ -45,7 +52,7 @@ func Test_StoreClientSideBySide(t *testing.T) {
|
|
|
|
|
if exp, got := `[{"last_insert_id":1,"rows_affected":1}]`, asJSON(res); exp != got {
|
|
|
|
|
t.Fatalf("unexpected results, expt %s, got %s", exp, got)
|
|
|
|
|
}
|
|
|
|
|
res, err = client.Execute(executeRequestFromString(`INSERT INTO bar(name) VALUES("fiona")`), leaderAddr, nil, shortWait)
|
|
|
|
|
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())
|
|
|
|
|
}
|
|
|
|
@ -68,14 +75,14 @@ func Test_StoreClientSideBySide(t *testing.T) {
|
|
|
|
|
t.Fatalf("unexpected results, expt %s, got %s", exp, got)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rows, err = client.Query(queryRequestFromString(`SELECT * FROM foo`), leaderAddr, nil, shortWait)
|
|
|
|
|
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)
|
|
|
|
|
}
|
|
|
|
|
rows, err = client.Query(queryRequestFromString(`SELECT * FROM bar`), leaderAddr, nil, shortWait)
|
|
|
|
|
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())
|
|
|
|
|
}
|
|
|
|
@ -90,7 +97,7 @@ func Test_StoreClientSideBySide(t *testing.T) {
|
|
|
|
|
if exp, got := `[{"error":"no such table: qux"}]`, asJSON(rows); exp != got {
|
|
|
|
|
t.Fatalf("unexpected results, expt %s, got %s", exp, got)
|
|
|
|
|
}
|
|
|
|
|
rows, err = client.Query(queryRequestFromString(`SELECT * FROM qux`), leaderAddr, nil, shortWait)
|
|
|
|
|
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())
|
|
|
|
|
}
|
|
|
|
|