SQLStore: Fix migrator locking test for SQLite (#45523)

* SQLStore: Fix migrator locking test for SQLite
This commit is contained in:
Sofia Papagiannaki 2022-02-17 16:12:44 +02:00 committed by GitHub
parent dac2b7ef73
commit 17dee4700c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -65,7 +65,7 @@ func TestMigrationLock(t *testing.T) {
t.Skip() t.Skip()
} }
testDB := getTestDB(dbType) testDB := getTestDB(t, dbType)
x, err := xorm.NewEngine(testDB.DriverName, testDB.ConnStr) x, err := xorm.NewEngine(testDB.DriverName, testDB.ConnStr)
require.NoError(t, err) require.NoError(t, err)
@ -154,7 +154,7 @@ func TestMigrationLock(t *testing.T) {
func TestMigratorLocking(t *testing.T) { func TestMigratorLocking(t *testing.T) {
dbType := getDBType() dbType := getDBType()
testDB := getTestDB(dbType) testDB := getTestDB(t, dbType)
x, err := xorm.NewEngine(testDB.DriverName, testDB.ConnStr) x, err := xorm.NewEngine(testDB.DriverName, testDB.ConnStr)
require.NoError(t, err) require.NoError(t, err)
@ -172,7 +172,7 @@ func TestMigratorLocking(t *testing.T) {
i := i // capture i variable i := i // capture i variable
t.Run(fmt.Sprintf("run migration %d", i), func(t *testing.T) { t.Run(fmt.Sprintf("run migration %d", i), func(t *testing.T) {
t.Parallel() t.Parallel()
err = mg.Start(true, 0) err := mg.Start(true, 0)
if err != nil { if err != nil {
if errors.Is(err, ErrMigratorIsLocked) { if errors.Is(err, ErrMigratorIsLocked) {
atomic.AddInt64(&errorNum, 1) atomic.AddInt64(&errorNum, 1)
@ -191,7 +191,7 @@ func TestDatabaseLocking(t *testing.T) {
t.Skip() t.Skip()
} }
testDB := getTestDB(dbType) testDB := getTestDB(t, dbType)
x, err := xorm.NewEngine(testDB.DriverName, testDB.ConnStr) x, err := xorm.NewEngine(testDB.DriverName, testDB.ConnStr)
require.NoError(t, err) require.NoError(t, err)
@ -281,14 +281,24 @@ func getDBType() string {
return dbType return dbType
} }
func getTestDB(dbType string) sqlutil.TestDB { func getTestDB(t *testing.T, dbType string) sqlutil.TestDB {
switch dbType { switch dbType {
case "mysql": case "mysql":
return sqlutil.MySQLTestDB() return sqlutil.MySQLTestDB()
case "postgres": case "postgres":
return sqlutil.PostgresTestDB() return sqlutil.PostgresTestDB()
default: default:
return sqlutil.SQLite3TestDB() f, err := os.CreateTemp(".", "grafana-test-db-")
require.NoError(t, err)
t.Cleanup(func() {
err := os.Remove(f.Name())
require.NoError(t, err)
})
return sqlutil.TestDB{
DriverName: "sqlite3",
ConnStr: f.Name(),
}
} }
} }