Compare commits

...

2 Commits

2 changed files with 75 additions and 80 deletions

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
}

View File

@@ -1704,8 +1704,11 @@ func TestGetFuzzDB(t *testing.T) {
if err2 != nil {
t.Fatalf("Second GetFuzzDB call failed: %v", err2)
}
if db2 != db {
t.Fatal("GetFuzzDB should return the same database instance")
if db2 == nil {
t.Fatal("Second GetFuzzDB returned nil database")
}
if db2 == db {
t.Fatal("GetFuzzDB should return a new database instance for each call")
}
}