mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
update go-sqlite3 to v0.18.0 (#3204)
This commit is contained in:
35
vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go
generated
vendored
35
vendor/github.com/ncruces/go-sqlite3/vfs/memdb/api.go
generated
vendored
@ -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()
|
||||
}
|
||||
|
Reference in New Issue
Block a user