Hello,
I've tried to run the quicktest suite for SQLite 3.22.0 on Linux (kernel
version 4.13.0), and when it executes test/oserror.test I get errors:
oserror-1.1.1... Ok
oserror-1.1.2... Ok
oserror-1.1.3... Ok
oserror-1.2.1... Ok
oserror-1.2.2... Ok
oserror-1.3.1... Ok
oserror-1.3.2... Ok
oserror-1.4.1... Ok
oserror-1.4.2... Ok
oserror-2.1.1...
! oserror-2.1.1 expected: [1 {disk I/O error}]
! oserror-2.1.1 got: [0 {}]
oserror-2.1.2...
! oserror-2.1.2 expected: [^os_unix.c:\d+: \(\d+\) unlink\(.*test.db-wal\) - ]
! oserror-2.1.2 got: []
oserror-2.1.3... Ok
After looking at the code in test/oserror.test, I'm confused about how
it could possibly ever pass: as far as I can see and understand, it does
not enable WAL journaling at all:
ifcapable wal {
do_test 2.1.1 {
set ::log [list]
file mkdir test.db-wal
forcedelete test.db
list [catch {
sqlite3 dbh test.db
execsql { SELECT * FROM sqlite_master } dbh
} msg] $msg
} {1 {disk I/O error}}
do_re_test 2.1.2 {
lindex $::log 0
} {^os_unix.c:\d+: \(\d+\) unlink\(.*test.db-wal\) - }
do_test 2.1.3 {
catch { dbh close }
forcedelete test.db-wal
} {}
}
so the file "testdir/test.db-wal" (which the test overrides with a dir)
does never come into play in the testdir/test.db DB that the test opens.
On the contrary, other WAL-related tests (such as test/wal.test) do
enable WAL journaling via "PRAGMA journal_mode = wal".
Any hints?
Thanks
_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users