fix: remove global sync.Once to prevent DB state leakage in fuzz tests
This commit is contained in:
@@ -1,27 +1,20 @@
|
||||
package fuzz
|
||||
|
||||
import (
|
||||
"sync"
|
||||
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/logger"
|
||||
)
|
||||
|
||||
var (
|
||||
fuzzDBOnce sync.Once
|
||||
fuzzDB *gorm.DB
|
||||
fuzzDBErr error
|
||||
)
|
||||
|
||||
func GetFuzzDB() (*gorm.DB, error) {
|
||||
fuzzDBOnce.Do(func() {
|
||||
dbName := "file:memdb_fuzz?mode=memory&cache=shared&_journal_mode=WAL&_synchronous=NORMAL"
|
||||
fuzzDB, fuzzDBErr = gorm.Open(sqlite.Open(dbName), &gorm.Config{
|
||||
db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{
|
||||
Logger: logger.Default.LogMode(logger.Silent),
|
||||
})
|
||||
if fuzzDBErr == nil {
|
||||
fuzzDBErr = fuzzDB.Exec(`
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = db.Exec(`
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
username TEXT UNIQUE NOT NULL,
|
||||
@@ -83,7 +76,6 @@ func GetFuzzDB() (*gorm.DB, error) {
|
||||
FOREIGN KEY(user_id) REFERENCES users(id)
|
||||
);
|
||||
`).Error
|
||||
}
|
||||
})
|
||||
return fuzzDB, fuzzDBErr
|
||||
|
||||
return db, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user