diff --git a/tests/db_test.go b/tests/db_test.go index ed89bf1..0ac50f8 100644 --- a/tests/db_test.go +++ b/tests/db_test.go @@ -16,10 +16,10 @@ import ( ) //go:embed testdata/wal.db -var waldb []byte +var walDB []byte //go:embed testdata/utf16be.db -var utf16db []byte +var utf16DB []byte func TestDB_memory(t *testing.T) { t.Parallel() @@ -42,7 +42,7 @@ func TestDB_wal(t *testing.T) { t.Parallel() tmp := filepath.Join(t.TempDir(), "test.db") - err := os.WriteFile(tmp, waldb, 0666) + err := os.WriteFile(tmp, walDB, 0666) if err != nil { t.Fatal(err) } @@ -56,7 +56,7 @@ func TestDB_utf16(t *testing.T) { t.Parallel() tmp := filepath.Join(t.TempDir(), "test.db") - err := os.WriteFile(tmp, utf16db, 0666) + err := os.WriteFile(tmp, utf16DB, 0666) if err != nil { t.Fatal(err) } diff --git a/tests/wal_test.go b/tests/wal_test.go index 017ed57..15fd92d 100644 --- a/tests/wal_test.go +++ b/tests/wal_test.go @@ -26,7 +26,7 @@ func TestWAL_enter_exit(t *testing.T) { defer db.Close() if !vfs.SupportsSharedMemory { - err = db.Exec(`PRAGMA locking_mode=EXCLUSIVE`) + err = db.Exec(`PRAGMA locking_mode=exclusive`) if err != nil { t.Fatal(err) } @@ -34,11 +34,11 @@ func TestWAL_enter_exit(t *testing.T) { err = db.Exec(` CREATE TABLE test (col); - PRAGMA journal_mode=WAL; + PRAGMA journal_mode=wal; SELECT * FROM test; - PRAGMA journal_mode=DELETE; + PRAGMA journal_mode=delete; SELECT * FROM test; - PRAGMA journal_mode=WAL; + PRAGMA journal_mode=wal; SELECT * FROM test; `) if err != nil { @@ -53,7 +53,7 @@ func TestWAL_readonly(t *testing.T) { t.Parallel() tmp := filepath.Join(t.TempDir(), "test.db") - err := os.WriteFile(tmp, waldb, 0666) + err := os.WriteFile(tmp, walDB, 0666) if err != nil { t.Fatal(err) } @@ -101,8 +101,8 @@ func TestConn_WalCheckpoint(t *testing.T) { }) err = db.Exec(` - PRAGMA locking_mode=EXCLUSIVE; - PRAGMA journal_mode=WAL; + PRAGMA locking_mode=exlusive; + PRAGMA journal_mode=wal; CREATE TABLE test (col); `) if err != nil { diff --git a/vfs/adiantum/adiantum_test.go b/vfs/adiantum/adiantum_test.go index e13ff74..2b8c8fe 100644 --- a/vfs/adiantum/adiantum_test.go +++ b/vfs/adiantum/adiantum_test.go @@ -1,14 +1,48 @@ package adiantum_test import ( + _ "embed" "path/filepath" + "strings" "testing" "github.com/ncruces/go-sqlite3" + "github.com/ncruces/go-sqlite3/driver" _ "github.com/ncruces/go-sqlite3/embed" - _ "github.com/ncruces/go-sqlite3/vfs/adiantum" + "github.com/ncruces/go-sqlite3/util/ioutil" + "github.com/ncruces/go-sqlite3/vfs" + "github.com/ncruces/go-sqlite3/vfs/adiantum" + "github.com/ncruces/go-sqlite3/vfs/readervfs" ) +//go:embed testdata/test.db +var testDB string + +func Test_fileformat(t *testing.T) { + readervfs.Create("test.db", ioutil.NewSizeReaderAt(strings.NewReader(testDB))) + adiantum.Register("adiantum", vfs.Find("reader"), nil) + + db, err := driver.Open("file:test.db?vfs=adiantum", nil) + if err != nil { + t.Fatal(err) + } + defer db.Close() + + _, err = db.Exec(`PRAGMA textkey='correct+horse+battery+staple'`) + if err != nil { + t.Fatal(err) + } + + var version uint32 + err = db.QueryRow(`PRAGMA user_version`).Scan(&version) + if err != nil { + t.Fatal(err) + } + if version != 0xBADDB { + t.Error(version) + } +} + func Benchmark_nokey(b *testing.B) { tmp := filepath.Join(b.TempDir(), "test.db") sqlite3.Initialize() diff --git a/vfs/adiantum/testdata/test.db b/vfs/adiantum/testdata/test.db new file mode 100644 index 0000000..3f8ac93 Binary files /dev/null and b/vfs/adiantum/testdata/test.db differ