From: dan Date: Thu, 6 Mar 2014 18:16:45 +0000 (+0000) Subject: Do not run corruptH.test in mmap mode. X-Git-Tag: version-3.8.4~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f0ec2a5ea71bf981b32c61856e08917950473a1e;p=thirdparty%2Fsqlite.git Do not run corruptH.test in mmap mode. FossilOrigin-Name: c0d54b4e41cba84dc5934e0fcd03fe422fe5c92b --- diff --git a/manifest b/manifest index c1695f1700..a96f29287e 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Improved\sEXPLAIN\sindentation\sof\sa\sloop\sin\sthe\sANALYZE\slogic\sfor\sSTAT4.\nMark\sthe\snot-found\sjump\sof\sa\sseek\soperation\sin\sthat\sloop\sas\snever\staken. -D 2014-03-06T13:38:37.861 +C Do\snot\srun\scorruptH.test\sin\smmap\smode. +D 2014-03-06T18:16:45.962 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -403,7 +403,7 @@ F test/corruptD.test b3c205fac7952b1de645ce44bb02335cd9e3e040 F test/corruptE.test 193b4ca4e927e77c1d5f4f56203ddc998432a7ee F test/corruptF.test be9fde98e4c93648f1ba52b74e5318edc8f59fe4 F test/corruptG.test 58ec333a01997fe655e34e5bea52b7a2a6b9704d -F test/corruptH.test 9d8186f6f8751efdfd445d8546fd98f073499039 +F test/corruptH.test 88ed71a086e13591c917aac6de32750e7c7281cb F test/corruptI.test 88886ec9cd1bdba835263566bbf60ee009c6ea09 F test/count.test 42a251178e32f617eda33f76236a7f79825a50b5 F test/coveridxscan.test cdb47d01acc4a634a34fd25abe85189e0d0f1e62 @@ -1155,7 +1155,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01 F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff -P 4a4997221f3d61c1411a993053b40c787beea736 -R 6c77c921c71ee968c47f10dbbbd337e5 -U drh -Z 43128f0b9615c8a6ed241332450c076a +P 0a4200f95cf46ad620b9fd91f4444114a0c74730 +R e9933db135410760cbb03eb238614bcf +U dan +Z b325d7c68ad2fff1170ad7d6e80e5338 diff --git a/manifest.uuid b/manifest.uuid index de8a5a7e02..8adb79e711 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -0a4200f95cf46ad620b9fd91f4444114a0c74730 \ No newline at end of file +c0d54b4e41cba84dc5934e0fcd03fe422fe5c92b \ No newline at end of file diff --git a/test/corruptH.test b/test/corruptH.test index 775c30d2a1..ee2bb1ee48 100644 --- a/test/corruptH.test +++ b/test/corruptH.test @@ -20,6 +20,18 @@ set testprefix corruptH do_not_use_codec database_may_be_corrupt +# The corruption migrations tested by the code in this file are not detected +# mmap mode. +# +# The reason is that in mmap mode, the different queries may use different +# PgHdr objects for the same page (same data, but different PgHdr container +# objects). And so the corruption is not detected. +# +if {[permutation]=="mmap"} { + finish_test + return +} + # Initialize the database. # do_execsql_test 1.1 { @@ -52,6 +64,7 @@ do_test 1.2 { } {} do_test 1.3 { +breakpoint db eval { PRAGMA secure_delete=1 } list [catch { db eval { SELECT * FROM t1 WHERE a IN (1, 2) } { @@ -97,9 +110,6 @@ do_test 2.2 { } {} -# The corruption migration caused by the test case below does not -# cause corruption to be detected in mmap mode. -# # The trick here is that the root page of the tree scanned by the outer # query is also currently on the free-list. So while the first seek on # the table (for a==1) works, by the time the second is attempted The @@ -109,15 +119,7 @@ do_test 2.2 { # the cursor (as it is now marked with PgHdr.intKey==0) and returns # SQLITE_CORRUPT. # -# However, in mmap mode, the outer query and the inner queries use -# different PgHdr objects (same data, but different PgHdr container -# objects). And so the corruption is not detected. Instead, the second -# seek fails to find anything and only a single row is returned. -# set res23 {1 {database disk image is malformed}} -if {[permutation]=="mmap"} { - set res23 {0 one} -} do_test 2.3 { list [catch { set res [list]