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