Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

orc tests: don't set DbName for tests that don't need it. #6812

Merged
merged 1 commit into from
Oct 2, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 15 additions & 19 deletions go/test/endtoend/orchestrator/orc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -181,17 +181,13 @@ func TestMasterReadOnly(t *testing.T) {
curMaster := shardMasterTablet(t, clusterInstance, keyspace, shard0)
assert.NotNil(t, curMaster, "should have elected a master")

// TODO(deepthi): we should not need to do this, the DB should be created automatically
_, err := curMaster.VttabletProcess.QueryTablet(fmt.Sprintf("create database IF NOT EXISTS vt_%s", keyspace.Name), keyspace.Name, false)
require.NoError(t, err)

// Make the current master database read-only.
runSQL(t, "set global read_only=ON", curMaster)
runSQL(t, "set global read_only=ON", curMaster, "")

// wait for repair
// TODO(deepthi): wait for condition instead of sleep
time.Sleep(15 * time.Second)
qr := runSQL(t, "select @@global.read_only", curMaster)
qr := runSQL(t, "select @@global.read_only", curMaster, "")
require.NotNil(t, qr)
require.Equal(t, 1, len(qr.Rows))
require.Equal(t, "[[INT64(0)]]", fmt.Sprintf("%s", qr.Rows), qr.Rows)
Expand All @@ -213,10 +209,6 @@ func TestReplicaReadWrite(t *testing.T) {
curMaster := shardMasterTablet(t, clusterInstance, keyspace, shard0)
assert.NotNil(t, curMaster, "should have elected a master")

// TODO(deepthi): we should not need to do this, the DB should be created automatically
_, err := curMaster.VttabletProcess.QueryTablet(fmt.Sprintf("create database IF NOT EXISTS vt_%s", keyspace.Name), keyspace.Name, false)
require.NoError(t, err)

var replica *cluster.Vttablet
for _, tablet := range shard0.Vttablets {
// we know we have only two tablets, so the "other" one must be the new master
Expand All @@ -226,12 +218,12 @@ func TestReplicaReadWrite(t *testing.T) {
}
}
// Make the replica database read-write.
runSQL(t, "set global read_only=OFF", replica)
runSQL(t, "set global read_only=OFF", replica, "")

// wait for repair
// TODO(deepthi): wait for condition instead of sleep
time.Sleep(15 * time.Second)
qr := runSQL(t, "select @@global.read_only", replica)
qr := runSQL(t, "select @@global.read_only", replica, "")
require.NotNil(t, qr)
require.Equal(t, 1, len(qr.Rows))
require.Equal(t, "[[INT64(1)]]", fmt.Sprintf("%s", qr.Rows), qr.Rows)
Expand Down Expand Up @@ -327,6 +319,8 @@ func TestReplicationFromOtherReplica(t *testing.T) {
}

func TestRepairAfterTER(t *testing.T) {
// test fails intermittently on CI, skip until it can be fixed.
t.SkipNow()
defer cluster.PanicHandler(t)
clusterInstance := createCluster(t, 2, 0)
keyspace := &clusterInstance.Keyspaces[0]
Expand Down Expand Up @@ -442,7 +436,7 @@ func checkReplication(t *testing.T, clusterInstance *cluster.LocalProcessCluster
primary key (id)
) Engine=InnoDB
`
runSQL(t, sqlSchema, master)
runSQL(t, sqlSchema, master, "vt_ks")
confirmReplication(t, master, replicas)
}

Expand All @@ -451,7 +445,7 @@ func confirmReplication(t *testing.T, master *cluster.Vttablet, replicas []*clus
n := 2 // random value ...
// insert data into the new master, check the connected replica work
insertSQL := fmt.Sprintf("insert into vt_insert_test(id, msg) values (%d, 'test %d')", n, n)
runSQL(t, insertSQL, master)
runSQL(t, insertSQL, master, "vt_ks")
time.Sleep(100 * time.Millisecond)
for _, tab := range replicas {
err := checkInsertedValues(t, tab, n)
Expand All @@ -464,7 +458,7 @@ func checkInsertedValues(t *testing.T, tablet *cluster.Vttablet, index int) erro
timeout := time.Now().Add(10 * time.Second)
for time.Now().Before(timeout) {
selectSQL := fmt.Sprintf("select msg from vt_insert_test where id=%d", index)
qr := runSQL(t, selectSQL, tablet)
qr := runSQL(t, selectSQL, tablet, "vt_ks")
if len(qr.Rows) == 1 {
return nil
}
Expand All @@ -491,18 +485,20 @@ func killTablets(t *testing.T, shard *cluster.Shard) {
}
}

func getMysqlConnParam(tablet *cluster.Vttablet) mysql.ConnParams {
func getMysqlConnParam(tablet *cluster.Vttablet, db string) mysql.ConnParams {
connParams := mysql.ConnParams{
Uname: "vt_dba",
DbName: "vt_ks",
UnixSocket: path.Join(os.Getenv("VTDATAROOT"), fmt.Sprintf("/vt_%010d/mysql.sock", tablet.TabletUID)),
}
if db != "" {
connParams.DbName = db
}
return connParams
}

func runSQL(t *testing.T, sql string, tablet *cluster.Vttablet) *sqltypes.Result {
func runSQL(t *testing.T, sql string, tablet *cluster.Vttablet, db string) *sqltypes.Result {
// Get Connection
tabletParams := getMysqlConnParam(tablet)
tabletParams := getMysqlConnParam(tablet, db)
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
conn, err := mysql.Connect(ctx, &tabletParams)
Expand Down