-C Merge\slatest\strunk\schanges\sinto\sthis\sbranch.
-D 2024-12-10T17:36:20.046
+C Fix\swalsetlk.test\sto\swork\son\sunix.
+D 2024-12-10T18:12:59.802
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
F test/walro2.test 33955a6fd874dd9724005e17f77fef89d334b3171454a1256fe4941a96766cdc
F test/walrofault.test c70cb6e308c443867701856cce92ad8288cd99488fa52afab77cca6cfd51af68
F test/walseh1.test bae700eb99519b6d5cd3f893c04759accc5a59c391d4189fe4dd6995a533442b
-F test/walsetlk.test 502cd17ebd2b4fcb7a2f67c3612582ae9da416c756affb652064c16ce365c16d
+F test/walsetlk.test e24dd0a7bba843a3f7da97b6571d0e7fa9133941e74bb75a1d89e172008df31c
F test/walshared.test 42e3808582504878af237ea02c42ca793e8a0efaa19df7df26ac573370dbc7a3
F test/walslow.test 0c51843836c9dcf40a5ac05aa781bfb977b396ee2c872d92bd48b79d5dd9aa23
F test/walthread.test 14b20fcfa6ae152f5d8e12f5dc8a8a724b7ef189f5d8ef1e2ceab79f2af51747
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 9cbc97ff8411a672b572000e4509ac02b3d29911be5ce1bcf334ed8e2a91db77 0f3b484fd71fd77947a1de7c24f35f8eed2911d0565d03edb7970b8f3092a5da
-R b4b044f08598c4c125c36b0936a05c1b
+P d67a42d62555cf9294e11a04d3c7cfdf11ca7978d60fc085f5a73e36aff8313e
+R f7af9d80a506351b36f5bd843c579062
U dan
-Z 7839b247a1c08690f8454e1a17953ba8
+Z 1f09d6481c3b825c642e11d0b6e347e6
# Remove this line to create a well-formed Fossil manifest.
set testprefix walsetlk
ifcapable !wal {finish_test ; return }
+if 0 {
db timeout 1000
#-------------------------------------------------------------------------
set ::sleep_count 0
proc xSleep_callback {xSleep nMs} {
+ puts POOOOOOP
after [expr $nMs / 1000]
incr ::sleep_count
}
}
#-------------------------------------------------------------------------
+}
reset_db
testvfs tvfs -fullshm 1
proc xSleep_callback {xSleep nMs} {
after [expr $nMs / 1000]
incr ::sleep_count
+ breakpoint
}
sqlite3 db2 test.db -vfs tvfs
INSERT INTO x1 VALUES(1, 2);
} {wal}
-do_test 3.1 {
+do_execsql_test -db db2 3.1a {
+ SELECT * FROM x1
+} {}
+
+do_test 3.1b {
list [catch { db2 eval {BEGIN EXCLUSIVE} } msg] $msg
} {1 {database is locked}}
-do_execsql_test 3.2 {
- COMMIT;
+# Set bExpect to true if calls to xSleep() are expected. Such calls are
+# expected unless this is an SQLITE_ENABLE_SETLK_TIMEOUT=1 build.
+set bExpect 1
+if {$tcl_platform(platform)=="windows" && $::sqlite_options(setlk_timeout)==1} {
+ set bExpect 0
}
+do_test 3.2 {
+ expr {$::sleep_count > 0}
+} $bExpect
+set ::sleep_count 0
+do_execsql_test 3.3 {
+ COMMIT;
+}
# Launch a non-blocking testfixture process to write-lock the
# database for 2000 ms.
after 500
db2 timeout 5000
-do_test 3.3 {
+do_test 3.4 {
set t [lindex [time { db2 eval { BEGIN EXCLUSIVE } }] 0]
expr ($t>1000000)
} {1}
if {$::sqlite_options(setlk_timeout)==1} {
set bExpect 0
}
-do_test 3.4 {
+do_test 3.5 {
expr {$::sleep_count > 0}
} $bExpect