Files
sqlite3/embed/bcw2/bcw2_test.go

60 lines
1.1 KiB
Go
Raw Permalink Normal View History

2024-08-13 15:19:30 +01:00
package bcw2
2024-08-09 00:48:25 +01:00
import (
"path/filepath"
"testing"
"github.com/ncruces/go-sqlite3/driver"
2025-01-11 19:22:04 +00:00
"github.com/ncruces/go-sqlite3/ext/stats"
2024-08-09 00:48:25 +01:00
"github.com/ncruces/go-sqlite3/vfs"
)
func Test_bcw2(t *testing.T) {
if !vfs.SupportsSharedMemory {
t.Skip("skipping without shared memory")
}
tmp := filepath.ToSlash(filepath.Join(t.TempDir(), "test.db"))
2025-01-11 19:22:04 +00:00
db, err := driver.Open("file:"+tmp+"?_pragma=journal_mode(wal2)&_txlock=concurrent", stats.Register)
2024-08-09 00:48:25 +01:00
if err != nil {
t.Fatal(err)
}
defer db.Close()
tx, err := db.Begin()
if err != nil {
t.Fatal(err)
}
defer tx.Rollback()
_, err = tx.Exec(`CREATE TABLE test (col)`)
if err != nil {
t.Fatal(err)
}
2024-12-17 15:25:25 +00:00
_, err = tx.Exec(`DELETE FROM test LIMIT 1`)
if err != nil {
t.Fatal(err)
}
2025-01-11 19:22:04 +00:00
_, err = tx.Exec(`SELECT median() WITHIN GROUP (ORDER BY col) FROM test`)
if err != nil {
t.Fatal(err)
}
2024-08-09 00:48:25 +01:00
err = tx.Commit()
if err != nil {
t.Fatal(err)
}
2024-08-13 15:19:30 +01:00
var version string
err = db.QueryRow(`SELECT sqlite_version()`).Scan(&version)
if err != nil {
t.Fatal(err)
}
2025-11-20 11:35:01 +00:00
if version != "3.52.0" {
2024-08-13 15:19:30 +01:00
t.Error(version)
}
2024-08-09 00:48:25 +01:00
}