Changes to test scripts so that the "inmemory_journal" permutation works with [ef126e775a].

FossilOrigin-Name: f553c8ed04b4b2df8ff4929e0754e3ffd1d01ba4
This commit is contained in:
dan 2010-07-08 09:44:42 +00:00
parent 8700b1e52d
commit cb35460330
18 changed files with 149 additions and 118 deletions

View File

@ -1,5 +1,5 @@
C Add\stests\sto\swalmode.test. C Changes\sto\stest\sscripts\sso\sthat\sthe\s"inmemory_journal"\spermutation\sworks\swith\s[ef126e775a].
D 2010-07-08T06:22:26 D 2010-07-08T09:44:42
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in c4270a1cd7cd70a263b7e96a258aa90e9c3618eb F Makefile.in c4270a1cd7cd70a263b7e96a258aa90e9c3618eb
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@ -234,11 +234,11 @@ F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87 F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87
F test/all.test 6745008c144bd2956d58864d21f7b304689c1cce F test/all.test 6745008c144bd2956d58864d21f7b304689c1cce
F test/alter.test 15f9224868b290d6bf7a63f31437f31aee070636 F test/alter.test 15f9224868b290d6bf7a63f31437f31aee070636
F test/alter2.test bc69a33f1c9f7e5ba4bf6348ec1962a6b7367bdc F test/alter2.test 52096b711afe5f219e575c6db7a70f7a35df4f63
F test/alter3.test 25b95a136708f22b87184fa6a4309eea03d65153 F test/alter3.test 25b95a136708f22b87184fa6a4309eea03d65153
F test/alter4.test 9386ffd1e9c7245f43eca412b2058d747509cc1f F test/alter4.test 9386ffd1e9c7245f43eca412b2058d747509cc1f
F test/altermalloc.test e81ac9657ed25c6c5bb09bebfa5a047cd8e4acfc F test/altermalloc.test e81ac9657ed25c6c5bb09bebfa5a047cd8e4acfc
F test/analyze.test ad5329098fe4de4a96852231d53e3e9e6283ad4b F test/analyze.test bf692e7db414f268a136bade16c03a1bdbb9240c
F test/analyze2.test 59dac6c399c0c5d1a90a11ee7cc606743fb6db93 F test/analyze2.test 59dac6c399c0c5d1a90a11ee7cc606743fb6db93
F test/analyze3.test 506203875258ffd8ffa879b9c3c5432022d2b6d8 F test/analyze3.test 506203875258ffd8ffa879b9c3c5432022d2b6d8
F test/async.test 028bd42d4ff9c69b62953ea6f718e827f37e1d79 F test/async.test 028bd42d4ff9c69b62953ea6f718e827f37e1d79
@ -255,7 +255,7 @@ F test/auth2.test 270baddc8b9c273682760cffba6739d907bd2882
F test/auth3.test a4755e6a2a2fea547ffe63c874eb569e60a28eb5 F test/auth3.test a4755e6a2a2fea547ffe63c874eb569e60a28eb5
F test/autoinc.test 85ef3180a737e6580086a018c09c6f1a52759b46 F test/autoinc.test 85ef3180a737e6580086a018c09c6f1a52759b46
F test/autoindex1.test ffb06a246e2c1f89cfbe3d93eca513c9e78d4063 F test/autoindex1.test ffb06a246e2c1f89cfbe3d93eca513c9e78d4063
F test/autovacuum.test 25f891bc343a8bf5d9229e2e9ddab9f31a9ab5ec F test/autovacuum.test bb7c0885e6f8f1d633045de48f2b66082162766d
F test/autovacuum_ioerr2.test 598b0663074d3673a9c1bc9a16e80971313bafe6 F test/autovacuum_ioerr2.test 598b0663074d3673a9c1bc9a16e80971313bafe6
F test/avtrans.test 0252654f4295ddda3b2cce0e894812259e655a85 F test/avtrans.test 0252654f4295ddda3b2cce0e894812259e655a85
F test/backup.test 200e64bd91244b73ca8094bc1e03dfc83cc94c2e F test/backup.test 200e64bd91244b73ca8094bc1e03dfc83cc94c2e
@ -279,11 +279,11 @@ F test/boundary3.test 56ef82096b4329aca2be74fa1e2b0f762ea0eb45
F test/boundary4.tcl 0bb4b1a94f4fc5ae59b79b9a2b7a140c405e2983 F test/boundary4.tcl 0bb4b1a94f4fc5ae59b79b9a2b7a140c405e2983
F test/boundary4.test 89e02fa66397b8a325d5eb102b5806f961f8ec4b F test/boundary4.test 89e02fa66397b8a325d5eb102b5806f961f8ec4b
F test/busy.test 76b4887f8b9160ba903c1ac22e8ff406ad6ae2f0 F test/busy.test 76b4887f8b9160ba903c1ac22e8ff406ad6ae2f0
F test/cache.test f19e0c8dbd7a1721856dafe3801cd5ea02def4f5 F test/cache.test c4288607b54f2702858492fc4b92828336a1812f
F test/capi2.test 00032d7504b9c14f1b36331670c5e7b0f73e3c5d F test/capi2.test 00032d7504b9c14f1b36331670c5e7b0f73e3c5d
F test/capi3.test 952ef8382398a6f4e0106b471cd8a197e55c8103 F test/capi3.test 1945a2ba75e3f4c49d5beb8fc092115b6292d471
F test/capi3b.test efb2b9cfd127efa84433cd7a2d72ce0454ae0dc4 F test/capi3b.test efb2b9cfd127efa84433cd7a2d72ce0454ae0dc4
F test/capi3c.test d9a828c8bc759f755c8463e1a3cf60795a34dae0 F test/capi3c.test bea67403a5e37a4b33230ee4723e315a2ffb31e7
F test/capi3d.test 57d83b690d7364bde02cddbf8339a4b50d80ce23 F test/capi3d.test 57d83b690d7364bde02cddbf8339a4b50d80ce23
F test/cast.test 166951664a0b0a2e0f8fb5997a152490c6363932 F test/cast.test 166951664a0b0a2e0f8fb5997a152490c6363932
F test/check.test db2b29d557544347d28e25b8406f5d5ecc3d1bc3 F test/check.test db2b29d557544347d28e25b8406f5d5ecc3d1bc3
@ -302,7 +302,7 @@ F test/colmeta.test 087c42997754b8c648819832241daf724f813322
F test/colname.test 08948a4809d22817e0e5de89c7c0a8bd90cb551b F test/colname.test 08948a4809d22817e0e5de89c7c0a8bd90cb551b
F test/conflict.test 0ed68b11f22721052d880ee80bd528a0e0828236 F test/conflict.test 0ed68b11f22721052d880ee80bd528a0e0828236
F test/corrupt.test 1a5bef8b2d178859af69814ecedcd37219a89968 F test/corrupt.test 1a5bef8b2d178859af69814ecedcd37219a89968
F test/corrupt2.test ada8f27dd4fd237e010bf46453d5ff114a8ca23a F test/corrupt2.test 808a28d0ca3b97e9aa8c91cd2b485ea2700b76d1
F test/corrupt3.test a399dacccb91c732f6b071c913e70d195af8c058 F test/corrupt3.test a399dacccb91c732f6b071c913e70d195af8c058
F test/corrupt4.test b963f9e01e0f92d15c76fb0747876fd4b96dc30a F test/corrupt4.test b963f9e01e0f92d15c76fb0747876fd4b96dc30a
F test/corrupt5.test c23da7bfb20917cc7fdbb13ee25c7cc4e9fffeff F test/corrupt5.test c23da7bfb20917cc7fdbb13ee25c7cc4e9fffeff
@ -437,12 +437,12 @@ F test/in4.test 64f3cc1acde1b9161ccdd8e5bde3daefdb5b2617
F test/incrblob.test e557f262cd2cc088e6bb4d154575a1bbe242edcd F test/incrblob.test e557f262cd2cc088e6bb4d154575a1bbe242edcd
F test/incrblob2.test edc3a96e557bd61fb39acc8d2edd43371fbbaa19 F test/incrblob2.test edc3a96e557bd61fb39acc8d2edd43371fbbaa19
F test/incrblob_err.test c577c91d4ed9e8336cdb188b15d6ee2a6fe9604e F test/incrblob_err.test c577c91d4ed9e8336cdb188b15d6ee2a6fe9604e
F test/incrvacuum.test d0fb6ef6d747ef5c5ebe878aafa72dd3e178856b F test/incrvacuum.test 453d1e490d8f5ad2c9b3a54282a0690d6ae56462
F test/incrvacuum2.test 9e22a794899c91b7d8c8e12eaacac8df249faafe F test/incrvacuum2.test 9e22a794899c91b7d8c8e12eaacac8df249faafe
F test/incrvacuum_ioerr.test 57d2f5777ab13fa03b87b262a4ea1bad5cfc0291 F test/incrvacuum_ioerr.test 57d2f5777ab13fa03b87b262a4ea1bad5cfc0291
F test/index.test cbf301cdb2da43e4eac636c3400c2439af1834ad F test/index.test cbf301cdb2da43e4eac636c3400c2439af1834ad
F test/index2.test ee83c6b5e3173a3d7137140d945d9a5d4fdfb9d6 F test/index2.test ee83c6b5e3173a3d7137140d945d9a5d4fdfb9d6
F test/index3.test 727d55dceb9a4ec36675057bb5becfc265e28ca6 F test/index3.test 423a25c789fc8cc51aaf2a4370bbdde2d9e9eed7
F test/indexedby.test 946ca2628a521f4ced0520421a0788345abaf3dc F test/indexedby.test 946ca2628a521f4ced0520421a0788345abaf3dc
F test/init.test 15c823093fdabbf7b531fe22cf037134d09587a7 F test/init.test 15c823093fdabbf7b531fe22cf037134d09587a7
F test/insert.test aef273dd1cee84cc92407469e6bd1b3cdcb76908 F test/insert.test aef273dd1cee84cc92407469e6bd1b3cdcb76908
@ -487,7 +487,7 @@ F test/lock6.test 8df56060f396151777390982422c800d026e1722
F test/lock7.test 64006c84c1c616657e237c7ad6532b765611cf64 F test/lock7.test 64006c84c1c616657e237c7ad6532b765611cf64
F test/lock_common.tcl e7013c6208f5fa818735c324eb0249b4c0f317cf F test/lock_common.tcl e7013c6208f5fa818735c324eb0249b4c0f317cf
F test/lookaside.test 382e7bc2fab23d902c8eafb1b9ed7ababfff75a6 F test/lookaside.test 382e7bc2fab23d902c8eafb1b9ed7ababfff75a6
F test/main.test 2be2352ac77ac5b238c6337a5469aeeef57677e6 F test/main.test 9d7bbfcc1b52c88ba7b2ba6554068ecf9939f252
F test/make-where7.tcl 05c16b5d4f5d6512881dfec560cb793915932ef9 F test/make-where7.tcl 05c16b5d4f5d6512881dfec560cb793915932ef9
F test/malloc.test 927e6c8668a1d48c23aa6189bda02aff5a1b83de F test/malloc.test 927e6c8668a1d48c23aa6189bda02aff5a1b83de
F test/malloc3.test 4bc57f850b212f706f3e1b37c4eced1d5a727cd1 F test/malloc3.test 4bc57f850b212f706f3e1b37c4eced1d5a727cd1
@ -522,7 +522,7 @@ F test/misc1.test e56baf44656dd68d6475a4b44521045a60241e9b
F test/misc2.test a628db7b03e18973e5d446c67696b03de718c9fd F test/misc2.test a628db7b03e18973e5d446c67696b03de718c9fd
F test/misc3.test 72c5dc87a78e7865c5ec7a969fc572913dbe96b6 F test/misc3.test 72c5dc87a78e7865c5ec7a969fc572913dbe96b6
F test/misc4.test 91e8ed25c092c2bb4e0bb01864631e2930f8d7de F test/misc4.test 91e8ed25c092c2bb4e0bb01864631e2930f8d7de
F test/misc5.test 6a5c1e3217a95b0db05ff9a0f1ecb5ce9043ffef F test/misc5.test 45b2e3ed5f79af2b4f38ae362eaf4c49674575bd
F test/misc6.test 953cc693924d88e6117aeba16f46f0bf5abede91 F test/misc6.test 953cc693924d88e6117aeba16f46f0bf5abede91
F test/misc7.test c5f4e6a82e04e71820c0f9f64f6733f04c8ae0ae F test/misc7.test c5f4e6a82e04e71820c0f9f64f6733f04c8ae0ae
F test/misuse.test 30b3a458e5a70c31e74c291937b6c82204c59f33 F test/misuse.test 30b3a458e5a70c31e74c291937b6c82204c59f33
@ -543,8 +543,8 @@ F test/pageropt.test 8146bf448cf09e87bb1867c2217b921fb5857806
F test/pagesize.test 76aa9f23ecb0741a4ed9d2e16c5fa82671f28efb F test/pagesize.test 76aa9f23ecb0741a4ed9d2e16c5fa82671f28efb
F test/pcache.test 4118a183908ecaed343a06fcef3ba82e87e0129d F test/pcache.test 4118a183908ecaed343a06fcef3ba82e87e0129d
F test/pcache2.test 0d85f2ab6963aee28c671d4c71bec038c00a1d16 F test/pcache2.test 0d85f2ab6963aee28c671d4c71bec038c00a1d16
F test/permutations.test a540a4ede33a306e77a2945901f398ec518fd668 F test/permutations.test 8be8c377dab57c1dc2181f49d2ce3c25d745ecfd
F test/pragma.test a869b428b861f9dbbdb25461a104e8e830fc3026 F test/pragma.test ed78d200f65c6998df51196cb8c39d5300570f24
F test/pragma2.test 5364893491b9231dd170e3459bfc2e2342658b47 F test/pragma2.test 5364893491b9231dd170e3459bfc2e2342658b47
F test/printf.test 05970cde31b1a9f54bd75af60597be75a5c54fea F test/printf.test 05970cde31b1a9f54bd75af60597be75a5c54fea
F test/progress.test 5b075c3c790c7b2a61419bc199db87aaf48b8301 F test/progress.test 5b075c3c790c7b2a61419bc199db87aaf48b8301
@ -584,7 +584,7 @@ F test/selectC.test 33bb5673a8141df193c6fd56e6de7fea38b8d2ee
F test/server1.test f5b790d4c0498179151ca8a7715a65a7802c859c F test/server1.test f5b790d4c0498179151ca8a7715a65a7802c859c
F test/shared.test 3b448dc0f7a9356e641894ed81c27599f39d809d F test/shared.test 3b448dc0f7a9356e641894ed81c27599f39d809d
F test/shared2.test d6ba4ca1827ea36a1ac23a99e3c36eeac9165450 F test/shared2.test d6ba4ca1827ea36a1ac23a99e3c36eeac9165450
F test/shared3.test 9c880afc081d797da514ef64bccf36f3fce2f09c F test/shared3.test d69bdd5f156580876c5345652d21dc2092e85962
F test/shared4.test d0fadacb50bb6981b2fb9dc6d1da30fa1edddf83 F test/shared4.test d0fadacb50bb6981b2fb9dc6d1da30fa1edddf83
F test/shared6.test 990d2584b5db28e6e1f24742c711b26e59757b67 F test/shared6.test 990d2584b5db28e6e1f24742c711b26e59757b67
F test/shared7.test 8114027cb5e8c376e467115703d46e5ac4e77739 F test/shared7.test 8114027cb5e8c376e467115703d46e5ac4e77739
@ -615,7 +615,7 @@ F test/tclsqlite.test 8c154101e704170c2be10f137a5499ac2c6da8d3
F test/tempdb.test 800c36623d67a2ad1f58784b9c5644e0405af6e6 F test/tempdb.test 800c36623d67a2ad1f58784b9c5644e0405af6e6
F test/temptable.test f42121a0d29a62f00f93274464164177ab1cc24a F test/temptable.test f42121a0d29a62f00f93274464164177ab1cc24a
F test/temptrigger.test b0273db072ce5f37cf19140ceb1f0d524bbe9f05 F test/temptrigger.test b0273db072ce5f37cf19140ceb1f0d524bbe9f05
F test/tester.tcl 9ddc36ee951a4b7aebee17f28e2880c8a6e57861 F test/tester.tcl 17aa13b61d4d6088b08c543942194bdc3cae685a
F test/thread001.test a3e6a7254d1cb057836cb3145b60c10bf5b7e60f F test/thread001.test a3e6a7254d1cb057836cb3145b60c10bf5b7e60f
F test/thread002.test afd20095e6e845b405df4f2c920cb93301ca69db F test/thread002.test afd20095e6e845b405df4f2c920cb93301ca69db
F test/thread003.test b824d4f52b870ae39fc5bae4d8070eca73085dca F test/thread003.test b824d4f52b870ae39fc5bae4d8070eca73085dca
@ -736,7 +736,7 @@ F test/trigger3.test d2c60d8be271c355d61727411e753181e877230a
F test/trigger4.test 8e90ee98cba940cd5f96493f82e55083806ab8a0 F test/trigger4.test 8e90ee98cba940cd5f96493f82e55083806ab8a0
F test/trigger5.test 619391a3e9fc194081d22cefd830d811e7badf83 F test/trigger5.test 619391a3e9fc194081d22cefd830d811e7badf83
F test/trigger6.test 0e411654f122552da6590f0b4e6f781048a4a9b9 F test/trigger6.test 0e411654f122552da6590f0b4e6f781048a4a9b9
F test/trigger7.test 72feaf8dbc52cea84de0c3e6ce7559ff19c479af F test/trigger7.test b39e6dee1debe0ff9c2ef66326668f149f07c9c4
F test/trigger8.test 30cb0530bd7c4728055420e3f739aa00412eafa4 F test/trigger8.test 30cb0530bd7c4728055420e3f739aa00412eafa4
F test/trigger9.test 5b0789f1c5c4600961f8e68511b825b87be53e31 F test/trigger9.test 5b0789f1c5c4600961f8e68511b825b87be53e31
F test/triggerA.test eaf11a29db2a11967d2d4b49d37f92bce598194e F test/triggerA.test eaf11a29db2a11967d2d4b49d37f92bce598194e
@ -832,7 +832,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
P 0d53da9451fe016adc57c7c077fdbbbdb1c8d6ee P 5aa2bdb502d70ccbc249a6b38b8a07b91c4ccd26
R b58a5775e3725a5f103ee1708fc4f9f4 R 9dc833f21280e696a7395bd9db154b17
U dan U dan
Z 0c9a27a3186e4aa1ec68825ca3150943 Z f94371008135c6c987152f6a482f93e2

View File

@ -1 +1 @@
5aa2bdb502d70ccbc249a6b38b8a07b91c4ccd26 f553c8ed04b4b2df8ff4929e0754e3ffd1d01ba4

View File

@ -254,7 +254,8 @@ ifcapable trigger {
do_test alter2-4.1 { do_test alter2-4.1 {
db close db close
set_file_format 5 set_file_format 5
sqlite3 db test.db catch { sqlite3 db test.db }
set {} {}
} {} } {}
do_test alter2-4.2 { do_test alter2-4.2 {
# We have to run two queries here because the Tcl interface uses # We have to run two queries here because the Tcl interface uses

View File

@ -296,7 +296,7 @@ do_test analyze-99.1 {
UPDATE sqlite_master SET sql='nonsense' WHERE name='sqlite_stat1'; UPDATE sqlite_master SET sql='nonsense' WHERE name='sqlite_stat1';
} }
db close db close
sqlite3 db test.db catch { sqlite3 db test.db }
catchsql { catchsql {
ANALYZE ANALYZE
} }

View File

@ -654,12 +654,14 @@ do_test autovacuum-8.1 {
sqlite3 db2 test.db sqlite3 db2 test.db
db eval {PRAGMA auto_vacuum} db eval {PRAGMA auto_vacuum}
} {1} } {1}
do_test autovacuum-8.2 { if {[permutation] == ""} {
db eval {BEGIN EXCLUSIVE} do_test autovacuum-8.2 {
catchsql {PRAGMA auto_vacuum} db2 db eval {BEGIN EXCLUSIVE}
} {1 {database is locked}} catchsql {PRAGMA auto_vacuum} db2
catch {db2 close} } {1 {database is locked}}
catch {db eval {COMMIT}} catch {db2 close}
catch {db eval {COMMIT}}
}
do_test autovacuum-9.1 { do_test autovacuum-9.1 {
execsql { execsql {

View File

@ -28,9 +28,9 @@ proc pager_cache_size {db} {
return $stats(page) return $stats(page)
} }
do_test cache-1.1 { if {[permutation] == ""} {
pager_cache_size db do_test cache-1.1 { pager_cache_size db } {0}
} {0} }
do_test cache-1.2 { do_test cache-1.2 {
execsql { execsql {

View File

@ -685,7 +685,7 @@ if {![sqlite3 -has-codec]} {
set_file_format 5 set_file_format 5
} {} } {}
do_test capi3-7.2 { do_test capi3-7.2 {
sqlite3 db test.db catch { sqlite3 db test.db }
catchsql { catchsql {
SELECT * FROM sqlite_master; SELECT * FROM sqlite_master;
} }
@ -713,7 +713,7 @@ if {![sqlite3 -has-codec]} {
db close db close
} {} } {}
do_test capi3-8.3 { do_test capi3-8.3 {
sqlite3 db test.db catch { sqlite3 db test.db }
catchsql { catchsql {
SELECT * FROM sqlite_master; SELECT * FROM sqlite_master;
} }
@ -732,7 +732,7 @@ if {![sqlite3 -has-codec]} {
db close db close
} {}; } {};
do_test capi3-8.5 { do_test capi3-8.5 {
sqlite3 db test.db catch { sqlite3 db test.db }
catchsql { catchsql {
SELECT * FROM sqlite_master; SELECT * FROM sqlite_master;
} }

View File

@ -658,7 +658,7 @@ if {![sqlite3 -has-codec]} {
set_file_format 5 set_file_format 5
} {} } {}
do_test capi3c-7.2 { do_test capi3c-7.2 {
sqlite3 db test.db catch { sqlite3 db test.db }
catchsql { catchsql {
SELECT * FROM sqlite_master; SELECT * FROM sqlite_master;
} }
@ -686,7 +686,7 @@ if {![sqlite3 -has-codec]} {
db close db close
} {} } {}
do_test capi3c-8.3 { do_test capi3c-8.3 {
sqlite3 db test.db catch { sqlite3 db test.db }
catchsql { catchsql {
SELECT * FROM sqlite_master; SELECT * FROM sqlite_master;
} }
@ -705,7 +705,7 @@ if {![sqlite3 -has-codec]} {
db close db close
} {}; } {};
do_test capi3c-8.5 { do_test capi3c-8.5 {
sqlite3 db test.db catch { sqlite3 db test.db }
catchsql { catchsql {
SELECT * FROM sqlite_master; SELECT * FROM sqlite_master;
} }

View File

@ -23,6 +23,10 @@ source $testdir/tester.tcl
# #
do_not_use_codec do_not_use_codec
set presql ""
catch { set presql "$::G(perm:presql);" }
unset -nocomplain ::G(perm:presql)
# The following tests - corrupt2-1.* - create some databases corrupted in # The following tests - corrupt2-1.* - create some databases corrupted in
# specific ways and ensure that SQLite detects them as corrupt. # specific ways and ensure that SQLite detects them as corrupt.
# #
@ -46,9 +50,10 @@ do_test corrupt2-1.2 {
close $f close $f
sqlite3 db2 corrupt.db sqlite3 db2 corrupt.db
catchsql { catchsql "
$::presql
SELECT * FROM sqlite_master; SELECT * FROM sqlite_master;
} db2 " db2
} {1 {file is encrypted or is not a database}} } {1 {file is encrypted or is not a database}}
do_test corrupt2-1.3 { do_test corrupt2-1.3 {
@ -65,9 +70,10 @@ do_test corrupt2-1.3 {
close $f close $f
sqlite3 db2 corrupt.db sqlite3 db2 corrupt.db
catchsql { catchsql "
$::presql
SELECT * FROM sqlite_master; SELECT * FROM sqlite_master;
} db2 " db2
} {1 {file is encrypted or is not a database}} } {1 {file is encrypted or is not a database}}
do_test corrupt2-1.4 { do_test corrupt2-1.4 {
@ -84,9 +90,10 @@ do_test corrupt2-1.4 {
close $f close $f
sqlite3 db2 corrupt.db sqlite3 db2 corrupt.db
catchsql { catchsql "
$::presql
SELECT * FROM sqlite_master; SELECT * FROM sqlite_master;
} db2 " db2
} {1 {database disk image is malformed}} } {1 {database disk image is malformed}}
do_test corrupt2-1.5 { do_test corrupt2-1.5 {
@ -106,9 +113,10 @@ do_test corrupt2-1.5 {
close $f close $f
sqlite3 db2 corrupt.db sqlite3 db2 corrupt.db
catchsql { catchsql "
$::presql
SELECT * FROM sqlite_master; SELECT * FROM sqlite_master;
} db2 " db2
} {1 {database disk image is malformed}} } {1 {database disk image is malformed}}
db2 close db2 close
@ -120,7 +128,8 @@ do_test corrupt2-2.1 {
copy_file test.db corrupt.db copy_file test.db corrupt.db
sqlite3 db2 corrupt.db sqlite3 db2 corrupt.db
execsql { execsql "
$::presql
CREATE INDEX a1 ON abc(a); CREATE INDEX a1 ON abc(a);
CREATE INDEX a2 ON abc(b); CREATE INDEX a2 ON abc(b);
PRAGMA writable_schema = 1; PRAGMA writable_schema = 1;
@ -128,13 +137,14 @@ do_test corrupt2-2.1 {
SET name = 'a3', sql = 'CREATE INDEX a3' || substr(sql, 16, 10000) SET name = 'a3', sql = 'CREATE INDEX a3' || substr(sql, 16, 10000)
WHERE type = 'index'; WHERE type = 'index';
PRAGMA writable_schema = 0; PRAGMA writable_schema = 0;
} db2 " db2
db2 close db2 close
sqlite3 db2 corrupt.db sqlite3 db2 corrupt.db
catchsql { catchsql "
$::presql
SELECT * FROM sqlite_master; SELECT * FROM sqlite_master;
} db2 " db2
} {1 {malformed database schema (a3) - index a3 already exists}} } {1 {malformed database schema (a3) - index a3 already exists}}
db2 close db2 close
@ -144,7 +154,8 @@ do_test corrupt2-3.1 {
file delete -force corrupt.db-journal file delete -force corrupt.db-journal
sqlite3 db2 corrupt.db sqlite3 db2 corrupt.db
execsql { execsql "
$::presql
PRAGMA auto_vacuum = 1; PRAGMA auto_vacuum = 1;
PRAGMA page_size = 1024; PRAGMA page_size = 1024;
CREATE TABLE t1(a, b, c); CREATE TABLE t1(a, b, c);
@ -154,7 +165,7 @@ do_test corrupt2-3.1 {
INSERT INTO t2 SELECT * FROM t2; INSERT INTO t2 SELECT * FROM t2;
INSERT INTO t2 SELECT * FROM t2; INSERT INTO t2 SELECT * FROM t2;
INSERT INTO t2 SELECT * FROM t2; INSERT INTO t2 SELECT * FROM t2;
} db2 " db2
db2 close db2 close
@ -173,9 +184,10 @@ do_test corrupt2-3.1 {
close $fd close $fd
sqlite3 db2 corrupt.db sqlite3 db2 corrupt.db
catchsql { catchsql "
$::presql
DROP TABLE t1; DROP TABLE t1;
} db2 " db2
} {1 {database disk image is malformed}} } {1 {database disk image is malformed}}
do_test corrupt2-4.1 { do_test corrupt2-4.1 {
@ -192,7 +204,8 @@ do_test corrupt2-5.1 {
file delete -force corrupt.db-journal file delete -force corrupt.db-journal
sqlite3 db2 corrupt.db sqlite3 db2 corrupt.db
execsql { execsql "
$::presql
PRAGMA auto_vacuum = 0; PRAGMA auto_vacuum = 0;
PRAGMA page_size = 1024; PRAGMA page_size = 1024;
CREATE TABLE t1(a, b, c); CREATE TABLE t1(a, b, c);
@ -203,7 +216,7 @@ do_test corrupt2-5.1 {
INSERT INTO t2 SELECT * FROM t2; INSERT INTO t2 SELECT * FROM t2;
INSERT INTO t2 SELECT * FROM t2; INSERT INTO t2 SELECT * FROM t2;
INSERT INTO t1 SELECT * FROM t2; INSERT INTO t1 SELECT * FROM t2;
} db2 " db2
db2 close db2 close
@ -224,6 +237,7 @@ do_test corrupt2-5.1 {
close $fd close $fd
sqlite3 db2 corrupt.db sqlite3 db2 corrupt.db
db2 eval $::presql
db2 eval {SELECT rowid FROM t1} { db2 eval {SELECT rowid FROM t1} {
set result [db2 eval {pragma integrity_check}] set result [db2 eval {pragma integrity_check}]
break break
@ -247,6 +261,7 @@ proc corruption_test {args} {
file delete -force corrupt.db-journal file delete -force corrupt.db-journal
sqlite3 db corrupt.db sqlite3 db corrupt.db
db eval $::presql
eval $A(-tclprep) eval $A(-tclprep)
db eval $A(-sqlprep) db eval $A(-sqlprep)
db close db close
@ -281,7 +296,7 @@ ifcapable autovacuum {
hexio_write corrupt.db [expr 1024*5] 00000008 hexio_write corrupt.db [expr 1024*5] 00000008
} -test { } -test {
do_test corrupt2-6.1 { do_test corrupt2-6.1 {
catchsql { pragma incremental_vacuum = 1 } catchsql " $::presql pragma incremental_vacuum = 1 "
} {1 {database disk image is malformed}} } {1 {database disk image is malformed}}
} }
@ -302,7 +317,7 @@ ifcapable autovacuum {
hexio_write corrupt.db [expr 1024*2 + 8] 00000009 hexio_write corrupt.db [expr 1024*2 + 8] 00000009
} -test { } -test {
do_test corrupt2-6.2 { do_test corrupt2-6.2 {
catchsql { pragma incremental_vacuum = 1 } catchsql " $::presql pragma incremental_vacuum = 1 "
} {1 {database disk image is malformed}} } {1 {database disk image is malformed}}
} }
@ -323,7 +338,7 @@ ifcapable autovacuum {
hexio_write corrupt.db [expr 1024 + ($nPage-3)*5] 010000000 hexio_write corrupt.db [expr 1024 + ($nPage-3)*5] 010000000
} -test { } -test {
do_test corrupt2-6.3 { do_test corrupt2-6.3 {
catchsql { pragma incremental_vacuum = 1 } catchsql " $::presql pragma incremental_vacuum = 1 "
} {1 {database disk image is malformed}} } {1 {database disk image is malformed}}
} }
@ -342,10 +357,11 @@ ifcapable autovacuum {
hexio_write corrupt.db 28 00000000 hexio_write corrupt.db 28 00000000
} -test { } -test {
do_test corrupt2-6.4 { do_test corrupt2-6.4 {
catchsql { catchsql "
$::presql
BEGIN EXCLUSIVE; BEGIN EXCLUSIVE;
COMMIT; COMMIT;
} "
} {1 {database disk image is malformed}} } {1 {database disk image is malformed}}
} }
} }
@ -379,7 +395,7 @@ corruption_test -sqlprep $sqlprep -corrupt {
close $fd close $fd
} -test { } -test {
do_test corrupt2-7.1 { do_test corrupt2-7.1 {
catchsql { SELECT b FROM t1 ORDER BY b ASC } catchsql " $::presql SELECT b FROM t1 ORDER BY b ASC "
} {1 {database disk image is malformed}} } {1 {database disk image is malformed}}
} }
@ -400,7 +416,7 @@ corruption_test -sqlprep $sqlprep -corrupt {
close $fd close $fd
} -test { } -test {
do_test corrupt2-7.1 { do_test corrupt2-7.1 {
catchsql { SELECT b FROM t1 ORDER BY b DESC } catchsql " $::presql SELECT b FROM t1 ORDER BY b DESC "
} {1 {database disk image is malformed}} } {1 {database disk image is malformed}}
} }
@ -418,7 +434,7 @@ corruption_test -sqlprep $sqlprep -corrupt {
close $fd close $fd
} -test { } -test {
do_test corrupt2-8.1 { do_test corrupt2-8.1 {
catchsql { SELECT * FROM t1 WHERE rowid=1000 } catchsql " $::presql SELECT * FROM t1 WHERE rowid=1000 "
} {1 {database disk image is malformed}} } {1 {database disk image is malformed}}
} }
@ -446,7 +462,7 @@ corruption_test -sqlprep {
close $fd close $fd
} -test { } -test {
do_test corrupt2-9.1 { do_test corrupt2-9.1 {
catchsql { SELECT sql FROM sqlite_master } catchsql " $::presql SELECT sql FROM sqlite_master "
} {1 {database disk image is malformed}} } {1 {database disk image is malformed}}
} }
@ -457,7 +473,7 @@ corruption_test -sqlprep {
UPDATE sqlite_master SET rootpage = NULL WHERE name = 't2'; UPDATE sqlite_master SET rootpage = NULL WHERE name = 't2';
} -test { } -test {
do_test corrupt2-10.1 { do_test corrupt2-10.1 {
catchsql { SELECT * FROM t2 } catchsql " $::presql SELECT * FROM t2 "
} {1 {malformed database schema (t2)}} } {1 {malformed database schema (t2)}}
do_test corrupt2-10.2 { do_test corrupt2-10.2 {
sqlite3_errcode db sqlite3_errcode db
@ -482,7 +498,7 @@ corruption_test -sqlprep {
hexio_write corrupt.db 24 12345678 hexio_write corrupt.db 24 12345678
} -test { } -test {
do_test corrupt2-11.1 { do_test corrupt2-11.1 {
catchsql { PRAGMA incremental_vacuum } catchsql " $::presql PRAGMA incremental_vacuum "
} {1 {database disk image is malformed}} } {1 {database disk image is malformed}}
} }
corruption_test -sqlprep { corruption_test -sqlprep {
@ -503,7 +519,7 @@ corruption_test -sqlprep {
hexio_write corrupt.db 24 12345678 hexio_write corrupt.db 24 12345678
} -test { } -test {
do_test corrupt2-12.1 { do_test corrupt2-12.1 {
catchsql { PRAGMA incremental_vacuum } catchsql " $::presql PRAGMA incremental_vacuum "
} {1 {database disk image is malformed}} } {1 {database disk image is malformed}}
} }
@ -521,7 +537,7 @@ ifcapable autovacuum {
INSERT INTO t1 VALUES(NULL, randstr(50,50)); INSERT INTO t1 VALUES(NULL, randstr(50,50));
} }
for {set ii 0} {$ii < 10} {incr ii} { for {set ii 0} {$ii < 10} {incr ii} {
db eval { INSERT INTO t1 SELECT NULL, randstr(50,50) FROM t1 } db eval " $::presql INSERT INTO t1 SELECT NULL, randstr(50,50) FROM t1 "
} }
} -corrupt { } -corrupt {
do_test corrupt2-13.1 { do_test corrupt2-13.1 {

View File

@ -727,15 +727,18 @@ do_test incrvacuum-13.5 {
# Verify that the incremental_vacuum pragma fails gracefully if it # Verify that the incremental_vacuum pragma fails gracefully if it
# is used against an invalid database file. # is used against an invalid database file.
# #
do_test incrvacuum-14.1 { if {[permutation] == ""} {
set out [open invalid.db w] do_test incrvacuum-14.1 {
puts $out "This is not an SQLite database file" set out [open invalid.db w]
close $out puts $out "This is not an SQLite database file"
sqlite3 db3 invalid.db close $out
catchsql { sqlite3 db3 invalid.db
PRAGMA incremental_vacuum(10); catchsql {
} db3 PRAGMA incremental_vacuum(10);
} {1 {file is encrypted or is not a database}} } db3
} {1 {file is encrypted or is not a database}}
db3 close
}
do_test incrvacuum-15.1 { do_test incrvacuum-15.1 {
db close db close
@ -780,5 +783,4 @@ do_test incrvacuum-15.1 {
} }
} {ok} } {ok}
db3 close
finish_test finish_test

View File

@ -49,10 +49,8 @@ do_test index3-99.1 {
UPDATE sqlite_master SET sql='nonsense'; UPDATE sqlite_master SET sql='nonsense';
} }
db close db close
sqlite3 db test.db catch { sqlite3 db test.db }
catchsql { catchsql { DROP INDEX i1 }
DROP INDEX i1;
}
} {1 {malformed database schema (t1) - near "nonsense": syntax error}} } {1 {malformed database schema (t1) - near "nonsense": syntax error}}
finish_test finish_test

View File

@ -298,15 +298,17 @@ ifcapable {trigger} {
# Try to open a database with a corrupt database file. # Try to open a database with a corrupt database file.
# #
do_test main-2.0 { if {[permutation] == ""} {
catch {db close} do_test main-2.0 {
file delete -force test.db catch {db close}
set fd [open test.db w] file delete -force test.db
puts $fd hi! set fd [open test.db w]
close $fd puts $fd hi!
set v [catch {sqlite3 db test.db} msg] close $fd
if {$v} {lappend v $msg} {lappend v {}} set v [catch {sqlite3 db test.db} msg]
} {0 {}} if {$v} {lappend v $msg} {lappend v {}}
} {0 {}}
}
# Here are some tests for tokenize.c. # Here are some tests for tokenize.c.
# #

View File

@ -511,17 +511,19 @@ ifcapable subquery {
# Ticket #1370. Do not overwrite small files (less than 1024 bytes) # Ticket #1370. Do not overwrite small files (less than 1024 bytes)
# when trying to open them as a database. # when trying to open them as a database.
# #
do_test misc5-4.1 { if {[permutation] == ""} {
db close do_test misc5-4.1 {
file delete -force test.db db close
set fd [open test.db w] file delete -force test.db
puts $fd "This is not really a database" set fd [open test.db w]
close $fd puts $fd "This is not really a database"
sqlite3 db test.db close $fd
catchsql { sqlite3 db test.db
CREATE TABLE t1(a,b,c); catchsql {
} CREATE TABLE t1(a,b,c);
} {1 {file is encrypted or is not a database}} }
} {1 {file is encrypted or is not a database}}
}
# Ticket #1371. Allow floating point numbers of the form .N or N. # Ticket #1371. Allow floating point numbers of the form .N or N.
# #

View File

@ -486,6 +486,9 @@ test_suite "inmemory_journal" -description {
pager.test exclusive.test jrnlmode.test sync.test misc1.test pager.test exclusive.test jrnlmode.test sync.test misc1.test
journal1.test conflict.test crash8.test tkt3457.test io.test journal1.test conflict.test crash8.test tkt3457.test io.test
pager1.test async4.test corrupt.test filefmt.test pager2.test
corrupt5.test corruptA.test pageropt.test
# Exclude stmt.test, which expects sub-journals to use temporary files. # Exclude stmt.test, which expects sub-journals to use temporary files.
stmt.test stmt.test

View File

@ -640,13 +640,15 @@ do_test pragma-7.1.2 {
} {} } {}
} ;# ifcapable schema_pragmas } ;# ifcapable schema_pragmas
ifcapable {utf16} { ifcapable {utf16} {
do_test pragma-7.2 { if {[permutation] == ""} {
db close do_test pragma-7.2 {
sqlite3 db test.db db close
catchsql { sqlite3 db test.db
pragma encoding=bogus; catchsql {
} pragma encoding=bogus;
} {1 {unsupported encoding: bogus}} }
} {1 {unsupported encoding: bogus}}
}
} }
ifcapable tempdb { ifcapable tempdb {
do_test pragma-7.3 { do_test pragma-7.3 {

View File

@ -90,12 +90,12 @@ do_test shared3-2.8 {
execsql { execsql {
INSERT INTO t1 VALUES(10, randomblob(10000)) INSERT INTO t1 VALUES(10, randomblob(10000))
} db1 } db1
sqlite3 db3 $alternative_name
# If the pager-cache is really still limited to 10 pages, then the INSERT # If the pager-cache is really still limited to 10 pages, then the INSERT
# statement above should have caused the pager to grab an exclusive lock # statement above should have caused the pager to grab an exclusive lock
# on the database file so that the cache could be spilled. # on the database file so that the cache could be spilled.
# #
catch { sqlite3 db3 $alternative_name }
catchsql {select count(*) from sqlite_master} db3 catchsql {select count(*) from sqlite_master} db3
} {1 {database is locked}} } {1 {database is locked}}

View File

@ -105,11 +105,9 @@ if {[info command sqlite_orig]==""} {
} }
set res [uplevel 1 sqlite_orig $args] set res [uplevel 1 sqlite_orig $args]
if {[info exists ::G(perm:presql)]} { if {[info exists ::G(perm:presql)]} {
[lindex $args 0] eval $::G(perm:presql) [lindex $args 0] eval $::G(perm:presql)
} }
set res set res
} else { } else {
# This command is not opening a new database connection. Pass the # This command is not opening a new database connection. Pass the
@ -120,6 +118,13 @@ if {[info command sqlite_orig]==""} {
} }
} }
proc execpresql {handle args} {
trace remove execution $handle enter [list execpresql $handle]
if {[info exists ::G(perm:presql)]} {
$handle eval $::G(perm:presql)
}
}
# This command should be called after loading tester.tcl from within # This command should be called after loading tester.tcl from within
# all test scripts that are incompatible with encryption codecs. # all test scripts that are incompatible with encryption codecs.
# #

View File

@ -112,10 +112,8 @@ do_test trigger7-99.1 {
UPDATE sqlite_master SET sql='nonsense'; UPDATE sqlite_master SET sql='nonsense';
} }
db close db close
sqlite3 db test.db catch { sqlite3 db test.db }
catchsql { catchsql { DROP TRIGGER t2r5 }
DROP TRIGGER t2r5
}
} {1 {malformed database schema (t2r12) - near "nonsense": syntax error}} } {1 {malformed database schema (t2r12) - near "nonsense": syntax error}}
finish_test finish_test