diff options
author | 2024-08-15 00:30:58 +0000 | |
---|---|---|
committer | 2024-08-15 00:30:58 +0000 | |
commit | 586639ccf0e2fefbd1da2c59d5abcb8d64d37434 (patch) | |
tree | 52a9d7412e98ef406c39f09a6fad6e3fa7a7ad49 /vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go | |
parent | update go-ffmpreg to v0.2.5 (pulls in latest tetratelabs/wazero) (#3203) (diff) | |
download | gotosocial-586639ccf0e2fefbd1da2c59d5abcb8d64d37434.tar.xz |
update go-sqlite3 to v0.18.0 (#3204)
Diffstat (limited to 'vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go')
-rw-r--r-- | vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go b/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go index 5a2b84c71..843488966 100644 --- a/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go +++ b/vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go @@ -10,7 +10,10 @@ package memdb import ( + "fmt" + "net/url" "sync" + "testing" "github.com/ncruces/go-sqlite3/vfs" ) @@ -39,8 +42,9 @@ func Create(name string, data []byte) { size: int64(len(data)), } - // Convert data from WAL to rollback journal. - if len(data) >= 20 && data[18] == 2 && data[19] == 2 { + // Convert data from WAL/2 to rollback journal. + if len(data) >= 20 && (data[18] == 2 && data[19] == 2 || + data[18] == 3 && data[19] == 3) { data[18] = 1 data[19] = 1 } @@ -66,3 +70,30 @@ func Delete(name string) { defer memoryMtx.Unlock() delete(memoryDBs, name) } + +// TestDB creates an empty shared memory database for the test to use. +// The database is automatically deleted when the test and all its subtests complete. +// Each subsequent call to TestDB returns a unique database. +func TestDB(tb testing.TB, params ...url.Values) string { + tb.Helper() + + name := fmt.Sprintf("%s_%p", tb.Name(), tb) + tb.Cleanup(func() { Delete(name) }) + Create(name, nil) + + p := url.Values{"vfs": {"memdb"}} + for _, v := range params { + for k, v := range v { + for _, v := range v { + p.Add(k, v) + } + } + } + + return (&url.URL{ + Scheme: "file", + OmitHost: true, + Path: "/" + name, + RawQuery: p.Encode(), + }).String() +} |