Skip to content

Commit

Permalink
fix all tests
Browse files Browse the repository at this point in the history
Signed-off-by: qupeng <qupeng@pingcap.com>
  • Loading branch information
hicqu committed Dec 17, 2021
1 parent 5813381 commit 9dc5f2f
Showing 1 changed file with 27 additions and 18 deletions.
45 changes: 27 additions & 18 deletions cdc/sink/mysql_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -444,13 +444,26 @@ func mockTestDB() (*sql.DB, error) {
return db, nil
}

func mockDBWithAdjustedSQLMode() (*sql.DB, sqlmock.Sqlmock, error) {
db, mock, err := sqlmock.New(sqlmock.QueryMatcherOption(sqlmock.QueryMatcherEqual))
if err != nil {
return db, mock, err
}
// sql mode is adjust for compatibility.
mock.ExpectQuery("SELECT @@SESSION.sql_mode;").
WillReturnRows(sqlmock.NewRows([]string{"@@SESSION.sql_mode"}).
AddRow("STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE"))
mock.ExpectExec("SET sql_mode = 'ALLOW_INVALID_DATES,IGNORE_SPACE,NO_AUTO_VALUE_ON_ZERO';").
WillReturnResult(sqlmock.NewResult(0, 0))
return db, mock, err
}

func TestAdjustSQLMode(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()

dbIndex := 0
mockGetDBConn := func(ctx context.Context, dsnStr string) (*sql.DB, error) {
fmt.Printf("mockGetDBConn is called\n")
defer func() {
dbIndex++
}()
Expand All @@ -461,17 +474,10 @@ func TestAdjustSQLMode(t *testing.T) {
return db, nil
}
// normal db
db, mock, err := sqlmock.New(sqlmock.QueryMatcherOption(sqlmock.QueryMatcherEqual))
db, mock, err := mockDBWithAdjustedSQLMode()
require.Nil(t, err)

// sql mode is adjust for compatibility.
mock.ExpectQuery("SELECT @@SESSION.sql_mode;").
WillReturnRows(sqlmock.NewRows([]string{"@@SESSION.sql_mode"}).
AddRow("STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE"))
mock.ExpectExec("SET sql_mode = 'ALLOW_INVALID_DATES,IGNORE_SPACE,NO_AUTO_VALUE_ON_ZERO';").
WillReturnResult(sqlmock.NewResult(0, 0))

// sql mode is adjust for compatibility.
// sql mode is adjust for cyclic.
mock.ExpectQuery("SELECT @@SESSION.sql_mode;").
WillReturnRows(sqlmock.NewRows([]string{"@@SESSION.sql_mode"}).
AddRow("ALLOW_INVALID_DATES,IGNORE_SPACE,NO_AUTO_VALUE_ON_ZERO"))
Expand Down Expand Up @@ -587,7 +593,7 @@ func TestNewMySQLSinkExecDML(t *testing.T) {
return db, nil
}
// normal db
db, mock, err := sqlmock.New(sqlmock.QueryMatcherOption(sqlmock.QueryMatcherEqual))
db, mock, err := mockDBWithAdjustedSQLMode()
require.Nil(t, err)
mock.ExpectBegin()
mock.ExpectExec("REPLACE INTO `s1`.`t1`(`a`,`b`) VALUES (?,?),(?,?)").
Expand Down Expand Up @@ -731,7 +737,7 @@ func TestExecDMLRollbackErrDatabaseNotExists(t *testing.T) {
return db, nil
}
// normal db
db, mock, err := sqlmock.New(sqlmock.QueryMatcherOption(sqlmock.QueryMatcherEqual))
db, mock, err := mockDBWithAdjustedSQLMode()
require.Nil(t, err)
mock.ExpectBegin()
mock.ExpectExec("REPLACE INTO `s1`.`t1`(`a`) VALUES (?),(?)").
Expand Down Expand Up @@ -797,7 +803,7 @@ func TestExecDMLRollbackErrTableNotExists(t *testing.T) {
return db, nil
}
// normal db
db, mock, err := sqlmock.New(sqlmock.QueryMatcherOption(sqlmock.QueryMatcherEqual))
db, mock, err := mockDBWithAdjustedSQLMode()
require.Nil(t, err)
mock.ExpectBegin()
mock.ExpectExec("REPLACE INTO `s1`.`t1`(`a`) VALUES (?),(?)").
Expand Down Expand Up @@ -863,7 +869,7 @@ func TestExecDMLRollbackErrRetryable(t *testing.T) {
return db, nil
}
// normal db
db, mock, err := sqlmock.New(sqlmock.QueryMatcherOption(sqlmock.QueryMatcherEqual))
db, mock, err := mockDBWithAdjustedSQLMode()
require.Nil(t, err)
for i := 0; i < defaultDMLMaxRetryTime; i++ {
mock.ExpectBegin()
Expand Down Expand Up @@ -912,7 +918,7 @@ func TestNewMySQLSinkExecDDL(t *testing.T) {
return db, nil
}
// normal db
db, mock, err := sqlmock.New(sqlmock.QueryMatcherOption(sqlmock.QueryMatcherEqual))
db, mock, err := mockDBWithAdjustedSQLMode()
require.Nil(t, err)
mock.ExpectBegin()
mock.ExpectExec("USE `test`;").WillReturnResult(sqlmock.NewResult(1, 1))
Expand Down Expand Up @@ -1042,7 +1048,8 @@ func TestNewMySQLSink(t *testing.T) {
return db, nil
}
// normal db
db, mock, err := sqlmock.New(sqlmock.QueryMatcherOption(sqlmock.QueryMatcherEqual))
db, mock, err := mockDBWithAdjustedSQLMode()
require.Nil(t, err)
mock.ExpectClose()
require.Nil(t, err)
return db, nil
Expand Down Expand Up @@ -1081,7 +1088,8 @@ func TestMySQLSinkClose(t *testing.T) {
return db, nil
}
// normal db
db, mock, err := sqlmock.New(sqlmock.QueryMatcherOption(sqlmock.QueryMatcherEqual))
db, mock, err := mockDBWithAdjustedSQLMode()
require.Nil(t, err)
mock.ExpectClose()
require.Nil(t, err)
return db, nil
Expand Down Expand Up @@ -1121,7 +1129,8 @@ func TestMySQLSinkFlushResovledTs(t *testing.T) {
return db, nil
}
// normal db
db, mock, err := sqlmock.New(sqlmock.QueryMatcherOption(sqlmock.QueryMatcherEqual))
db, mock, err := mockDBWithAdjustedSQLMode()
require.Nil(t, err)
mock.ExpectBegin()
mock.ExpectExec("REPLACE INTO `s1`.`t1`(`a`) VALUES (?)").
WithArgs(1).
Expand Down

0 comments on commit 9dc5f2f

Please sign in to comment.