From 0743f84f50304b0586abf7f18f09f4db6a7926ab Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Fri, 18 Feb 2022 08:03:14 +0000 Subject: [PATCH] SQLStore: Fix migrator locking test for SQLite (#45523) (#45530) * SQLStore: Fix migrator locking test for SQLite (cherry picked from commit 17dee4700cf878f271032c50f2f0fc61fb123e74) Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com> --- .../sqlstore/migrations/migrations_test.go | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/pkg/services/sqlstore/migrations/migrations_test.go b/pkg/services/sqlstore/migrations/migrations_test.go index 3ee4d111954..83a26cc52df 100644 --- a/pkg/services/sqlstore/migrations/migrations_test.go +++ b/pkg/services/sqlstore/migrations/migrations_test.go @@ -65,7 +65,7 @@ func TestMigrationLock(t *testing.T) { t.Skip() } - testDB := getTestDB(dbType) + testDB := getTestDB(t, dbType) x, err := xorm.NewEngine(testDB.DriverName, testDB.ConnStr) require.NoError(t, err) @@ -154,7 +154,7 @@ func TestMigrationLock(t *testing.T) { func TestMigratorLocking(t *testing.T) { dbType := getDBType() - testDB := getTestDB(dbType) + testDB := getTestDB(t, dbType) x, err := xorm.NewEngine(testDB.DriverName, testDB.ConnStr) require.NoError(t, err) @@ -172,7 +172,7 @@ func TestMigratorLocking(t *testing.T) { i := i // capture i variable t.Run(fmt.Sprintf("run migration %d", i), func(t *testing.T) { t.Parallel() - err = mg.Start(true, 0) + err := mg.Start(true, 0) if err != nil { if errors.Is(err, ErrMigratorIsLocked) { atomic.AddInt64(&errorNum, 1) @@ -191,7 +191,7 @@ func TestDatabaseLocking(t *testing.T) { t.Skip() } - testDB := getTestDB(dbType) + testDB := getTestDB(t, dbType) x, err := xorm.NewEngine(testDB.DriverName, testDB.ConnStr) require.NoError(t, err) @@ -281,14 +281,24 @@ func getDBType() string { return dbType } -func getTestDB(dbType string) sqlutil.TestDB { +func getTestDB(t *testing.T, dbType string) sqlutil.TestDB { switch dbType { case "mysql": return sqlutil.MySQLTestDB() case "postgres": return sqlutil.PostgresTestDB() 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(), + } } }