MM-49604: Fix race condition in test (#22128)
The AssertExpectations was being called after the store was closed. To fix it we move it to the last line. https://mattermost.atlassian.net/browse/MM-49604 ```release-note NONE
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
63f05ee1a3
Коммит
82077c9004
@@ -703,56 +703,57 @@ func TestVersionString(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestReplicaLagQuery(t *testing.T) {
|
||||
t.Skip("MM-49604")
|
||||
testDrivers := []string{
|
||||
model.DatabaseDriverPostgres,
|
||||
model.DatabaseDriverMysql,
|
||||
}
|
||||
|
||||
for _, driver := range testDrivers {
|
||||
settings := makeSqlSettings(driver)
|
||||
var query string
|
||||
var tableName string
|
||||
// Just any random query which returns a row in (string, int) format.
|
||||
switch driver {
|
||||
case model.DatabaseDriverPostgres:
|
||||
query = `SELECT relname, count(relname) FROM pg_class WHERE relname='posts' GROUP BY relname`
|
||||
tableName = "posts"
|
||||
case model.DatabaseDriverMysql:
|
||||
query = `SELECT table_name, count(table_name) FROM information_schema.tables WHERE table_name='Posts' and table_schema=Database() GROUP BY table_name`
|
||||
tableName = "Posts"
|
||||
}
|
||||
t.Run(driver, func(t *testing.T) {
|
||||
settings := makeSqlSettings(driver)
|
||||
var query string
|
||||
var tableName string
|
||||
// Just any random query which returns a row in (string, int) format.
|
||||
switch driver {
|
||||
case model.DatabaseDriverPostgres:
|
||||
query = `SELECT relname, count(relname) FROM pg_class WHERE relname='posts' GROUP BY relname`
|
||||
tableName = "posts"
|
||||
case model.DatabaseDriverMysql:
|
||||
query = `SELECT table_name, count(table_name) FROM information_schema.tables WHERE table_name='Posts' and table_schema=Database() GROUP BY table_name`
|
||||
tableName = "Posts"
|
||||
}
|
||||
|
||||
settings.ReplicaLagSettings = []*model.ReplicaLagSettings{{
|
||||
DataSource: model.NewString(*settings.DataSource),
|
||||
QueryAbsoluteLag: model.NewString(query),
|
||||
QueryTimeLag: model.NewString(query),
|
||||
}}
|
||||
settings.ReplicaLagSettings = []*model.ReplicaLagSettings{{
|
||||
DataSource: model.NewString(*settings.DataSource),
|
||||
QueryAbsoluteLag: model.NewString(query),
|
||||
QueryTimeLag: model.NewString(query),
|
||||
}}
|
||||
|
||||
mockMetrics := &mocks.MetricsInterface{}
|
||||
defer mockMetrics.AssertExpectations(t)
|
||||
mockMetrics.On("SetReplicaLagAbsolute", tableName, float64(1))
|
||||
mockMetrics.On("SetReplicaLagTime", tableName, float64(1))
|
||||
mockMetrics.On("RegisterDBCollector", mock.AnythingOfType("*sql.DB"), "master")
|
||||
mockMetrics := &mocks.MetricsInterface{}
|
||||
mockMetrics.On("SetReplicaLagAbsolute", tableName, float64(1))
|
||||
mockMetrics.On("SetReplicaLagTime", tableName, float64(1))
|
||||
mockMetrics.On("RegisterDBCollector", mock.AnythingOfType("*sql.DB"), "master")
|
||||
|
||||
store := &SqlStore{
|
||||
rrCounter: 0,
|
||||
srCounter: 0,
|
||||
settings: settings,
|
||||
metrics: mockMetrics,
|
||||
}
|
||||
store := &SqlStore{
|
||||
rrCounter: 0,
|
||||
srCounter: 0,
|
||||
settings: settings,
|
||||
metrics: mockMetrics,
|
||||
}
|
||||
|
||||
store.initConnection()
|
||||
store.stores.post = newSqlPostStore(store, mockMetrics)
|
||||
err := store.migrate(migrationsDirectionUp)
|
||||
require.NoError(t, err)
|
||||
store.initConnection()
|
||||
store.stores.post = newSqlPostStore(store, mockMetrics)
|
||||
err := store.migrate(migrationsDirectionUp)
|
||||
require.NoError(t, err)
|
||||
|
||||
defer store.Close()
|
||||
defer store.Close()
|
||||
|
||||
err = store.ReplicaLagAbs()
|
||||
require.NoError(t, err)
|
||||
err = store.ReplicaLagTime()
|
||||
require.NoError(t, err)
|
||||
err = store.ReplicaLagAbs()
|
||||
require.NoError(t, err)
|
||||
err = store.ReplicaLagTime()
|
||||
require.NoError(t, err)
|
||||
mockMetrics.AssertExpectations(t)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user