package core import ( "testing" "time" ) // fixOpenDB 开一个临时库: 关掉自动提交 (只在显式 Commit 时落盘), 并注册收尾关闭。 // // 这个助手原本住在 page_leak_fix_test.go 里, 那个文件在上一次提交里被删掉了, // 但 newtypes_test.go 仍在用它 —— core 包的测试因此整个编译不过 // (undefined: fixOpenDB)。这里把它单独放一个文件, 别再跟着别的用例一起被带走。 func fixOpenDB(t *testing.T) *DB { t.Helper() // t.TempDir 的清理注册在前, 下面的 Close 注册在后 → Close 先执行, 文件不会占用。 db, err := Open(t.TempDir() + "/testsupport.db") if err != nil { t.Fatalf("open: %v", err) } db.SetAutoCommitDelay(0) // 0 = 关闭自动提交, 只在显式 Commit 时落盘 t.Cleanup(func() { start := time.Now() _ = db.Close() t.Logf("[耗时] Close (含收尾 Commit+fsync): %v", time.Since(start)) }) return db }