fix: remove global sync.Once to prevent DB state leakage in fuzz tests

This commit is contained in:
2026-01-12 22:34:36 +01:00
parent 49e6bb1e9d
commit 4dfe260953

View File

@@ -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
}