-C Partial\sfix\sfor\sa\sbug\sin\srecovery\sfrom\sxStress\sfailures\sin\spcache.\s(CVS\s5635)
-D 2008-08-28T17:46:19
+C Fix\sioerr5.test\sso\sthat\sit\sworks\swith\sthe\snew\spcache\smodule.\s(CVS\s5636)
+D 2008-08-28T18:35:34
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 689e14735f862a5553bceef206d8c13e29504e44
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F test/ioerr2.test 988bda4d8d6fa1593765a514bf7a24adb3240da9
F test/ioerr3.test d3cec5e1a11ad6d27527d0d38573fbff14c71bdd
F test/ioerr4.test fc6eddfec2efc2f1ed217b9eae4c1c1d3516ce86
-F test/ioerr5.test fe59ee3e3d45a121bcdb8f462b718076e66b4ca7
+F test/ioerr5.test 89f69b09a6b5d4f5bbfe58d4231f28236d842dcb
F test/join.test e0664af757049ba1f19a0d42c470a58299f36a3e
F test/join2.test f2171c265e57ee298a27e57e7051d22962f9f324
F test/join3.test 6f0c774ff1ba0489e6c88a3e77b9d3528fb4fda0
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P b606263d0868aed267bcec623b9fe4d142099145
-R 583df9a59ceb3abe3e9babb420a62f8c
-U drh
-Z d2e0132b284492803c0e9b5e5f2053d7
+P 44193b92770062271711570d8532fa5af5f5da54
+R b653a7b6746fff19fe5c3b4b1ca78010
+U danielk1977
+Z e1c85e2c49e0ca001d86550ca68a5398
# incorrectly write dirty pages out to the database (not safe to do
# once the pager is in error state).
#
-# $Id: ioerr5.test,v 1.4 2008/07/12 14:52:20 drh Exp $
+# $Id: ioerr5.test,v 1.5 2008/08/28 18:35:34 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
} {}
foreach locking_mode {normal exclusive} {
+ set nPage 2
for {set iFail 1} {$iFail<200} {incr iFail} {
sqlite3_soft_heap_limit 1048576
opendatabases
# with the dirty page.
#
do_test ioerr5-1.$locking_mode-$iFail.3 {
+ set bt [btree_from_db db]
sqlite3_soft_heap_limit 1024
compilesql16 "SELECT 10"
- set bt [btree_from_db db]
array set stats [btree_pager_stats $bt]
- set stats(page)
- } {0}
+
+ # If the pager made it all the way to PAGER_SYNCED state, then
+ # both in-memory pages are clean. Following the calls to
+ # release_memory() that were made as part of the [compilesql16]
+ # above, there will be zero pages left in the cache.
+ #
+ # If the pager did not make it as far as PAGER_SYNCED, the two
+ # in memory pages are still dirty. So there will be 2 pages left
+ # in the cache following the release_memory() calls.
+ #
+ if {$stats(state)==5} {
+ set nPage 0
+ }
+ expr {$stats(page)==$nPage}
+ } {1}
# Ensure that nothing was written to the database while reclaiming
# memory from the pager in error state.