diff --git a/manifest b/manifest index a843691f57..baad725356 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\sanother\sscenario\sto\sthe\ssoak1.tcl\sscript.\s(CVS\s4081) -D 2007-06-16T14:19:37 +C Modify\sthe\stests\sin\sexclusive2.test\sto\saccount\sfor\sthe\sfact\sthat\sthe\spager\scache\smay\sbe\svery\ssmall\sby\sdefault.\sThese\stests\sare\sonly\svalid\sif\sthe\sentire\sdatabase\sfitting\sin\sthe\scache.\s(CVS\s4082) +D 2007-06-16T14:43:52 F Makefile.in b9971ab07868cf2b3209fe3bf8c52e7e25af4193 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 @@ -219,7 +219,7 @@ F test/enc.test e54531cd6bf941ee6760be041dff19a104c7acea F test/enc2.test 45710bacfa9df29720bc84c067dfdf8c8ddfb797 F test/enc3.test 9331988b9d72decec96995c90637e87b00d747a5 F test/exclusive.test 5bc520ba366ae3d242420af025ab64d465b04706 -F test/exclusive2.test f9738964b01e0bc4d4e5e270e347ca162da51799 +F test/exclusive2.test 3496656375dc88e97d704c2d5d2c93d626cb7104 F test/exclusive3.test 0e49c35b7e7cb8e7280b4ce3f0359d30b207d2ff F test/expr.test 93931366f660dc84ba36eaf390f670b27d2c03e8 F test/filefmt.test 053b622009fbbb74dd37921ffad374d852c13cd8 @@ -506,7 +506,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5 -P 57bf8204cde47dfeb31c064f2b128b9a8d94189f -R d7bfa5ee51c1074ea7aa01f17fe681ef -U drh -Z 380c1ba94ab41ce14e0117d755c9e29d +P 10e6822d4f1e0a94d5033b7b9efc1d8ed1e957d1 +R 1d1b1769be7545513988c0696b58e024 +U danielk1977 +Z 5ed1041deb438cdb83ffe8e125caddda diff --git a/manifest.uuid b/manifest.uuid index 5301e6fb24..f8564133b0 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -10e6822d4f1e0a94d5033b7b9efc1d8ed1e957d1 \ No newline at end of file +04a13fe43e61bd0dbff42c448e763078503b00bf \ No newline at end of file diff --git a/test/exclusive2.test b/test/exclusive2.test index d82b86e553..5d458af513 100644 --- a/test/exclusive2.test +++ b/test/exclusive2.test @@ -10,7 +10,7 @@ #*********************************************************************** # This file implements regression tests for SQLite library. # -# $Id: exclusive2.test,v 1.5 2007/04/25 12:06:59 drh Exp $ +# $Id: exclusive2.test,v 1.6 2007/06/16 14:43:52 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl @@ -67,6 +67,11 @@ do_test exclusive2-1.0 { # sees the change-counter has been incremented and discards the # invalid in-memory cache. # +# This will only work if the database cache is large enough to hold +# the entire database. In the case of 1024 byte pages, this means +# the cache size must be at least 17. Otherwise, some pages will be +# loaded from the database file in step 8. +# do_test exclusive2-1.1 { execsql { BEGIN; @@ -82,6 +87,15 @@ do_test exclusive2-1.1 { SELECT count(*) FROM t1; } } {64} +do_test exclusive2-1.2.1 { + # Make sure the pager cache is large enough to store the + # entire database. + set nPage [expr [file size test.db]/1024] + if {$::SQLITE_DEFAULT_CACHE_SIZE < $nPage} { + execsql "PRAGMA cache_size = $nPage" + } + expr {[execsql {PRAGMA cache_size}] >= $nPage} +} {1} do_test exclusive2-1.2 { set ::sig [t1sig] pagerChangeCounter test.db @@ -132,6 +146,10 @@ do_test exclusive2-1.11 { # SQLite detects the modified change-counter and discards the # in-memory cache. Then it finds the corruption caused in step 4.... # +# As above, this test is only applicable if the pager cache is +# large enough to hold the entire database. With 1024 byte pages, +# this means 19 pages. +# do_test exclusive2-2.1 { execsql {PRAGMA locking_mode = exclusive;} execsql { @@ -148,6 +166,15 @@ do_test exclusive2-2.1 { SELECT count(*) FROM t1; } } {64} +do_test exclusive2-2.2.1 { + # Make sure the pager cache is large enough to store the + # entire database. + set nPage [expr [file size test.db]/1024] + if {$::SQLITE_DEFAULT_CACHE_SIZE < $nPage} { + execsql "PRAGMA cache_size = $nPage" + } + expr {[execsql {PRAGMA cache_size}] >= $nPage} +} {1} do_test exclusive2-2.2 { set ::sig [t1sig] pagerChangeCounter test.db