From fa2a4772268528d380bd5bc4a7c126f765590f29 Mon Sep 17 00:00:00 2001 From: dan Date: Tue, 14 Sep 2010 10:53:45 +0000 Subject: [PATCH] Fix some test failures found running releasetest.tcl. FossilOrigin-Name: 56a9ce7774a6f163a62684dd8d5357ce16a07de1 --- manifest | 18 ++--- manifest.uuid | 2 +- test/exclusive2.test | 17 +++-- test/incrblob.test | 166 +++++++++++++++++++++-------------------- test/pagerfault.test | 36 +++++---- test/permutations.test | 2 +- 6 files changed, 132 insertions(+), 109 deletions(-) diff --git a/manifest b/manifest index aab5c8ef29..c6227eb17f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\swalmode.test\sso\sthat\sall\stests\spass\swith\sSQLITE_TEMP_STORE=3. -D 2010-09-13T19:03:38 +C Fix\ssome\stest\sfailures\sfound\srunning\sreleasetest.tcl. +D 2010-09-14T10:53:46 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in c599a15d268b1db2aeadea19df2adc3bf2eb6bee F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -356,7 +356,7 @@ F test/enc2.test 6d91a5286f59add0cfcbb2d0da913b76f2242398 F test/enc3.test 5c550d59ff31dccdba5d1a02ae11c7047d77c041 F test/eval.test bc269c365ba877554948441e91ad5373f9f91be3 F test/exclusive.test 0ba00fb15aeec1eba3d4b03a271b5081e21c35be -F test/exclusive2.test fcbb1c9ca9739292a0a22a3763243ad6d868086b +F test/exclusive2.test 76e63c05349cb70d09d60b99d2ae625525ff5155 F test/exec.test e949714dc127eaa5ecc7d723efec1ec27118fdd7 F test/expr.test 9f521ae22f00e074959f72ce2e55d46b9ed23f68 F test/fallocate.test 43dc34b8c24be6baffadc3b4401ee15710ce83c6 @@ -446,7 +446,7 @@ F test/in.test 19b642bb134308980a92249750ea4ce3f6c75c2d F test/in2.test 5d4c61d17493c832f7d2d32bef785119e87bde75 F test/in3.test 3cbf58c87f4052cee3a58b37b6389777505aa0c0 F test/in4.test 64f3cc1acde1b9161ccdd8e5bde3daefdb5b2617 -F test/incrblob.test e557f262cd2cc088e6bb4d154575a1bbe242edcd +F test/incrblob.test fa2cd937f59f5231bfdc2aa152ee184bf254ca02 F test/incrblob2.test edc3a96e557bd61fb39acc8d2edd43371fbbaa19 F test/incrblob_err.test c577c91d4ed9e8336cdb188b15d6ee2a6fe9604e F test/incrvacuum.test 453d1e490d8f5ad2c9b3a54282a0690d6ae56462 @@ -551,13 +551,13 @@ F test/openv2.test af02ed0a9cbc0d2a61b8f35171d4d117e588e4ec F test/pager1.test 12ad20280db1ba25f1f0d7ddebf0971a305d8f80 F test/pager2.test 0fbb6b6dc40ce1fecfe758c555a748ad2e9beaa3 F test/pager3.test 3856d9c80839be0668efee1b74811b1b7f7fc95f -F test/pagerfault.test 90f7c65b750def13d4f673ff8bef2446e886517d +F test/pagerfault.test 3cd3537bf2efb4baef26c74878718f4a32926da4 F test/pagerfault2.test 1f79ea40d1133b2683a2f811b00f2399f7ec2401 F test/pageropt.test 8146bf448cf09e87bb1867c2217b921fb5857806 F test/pagesize.test 76aa9f23ecb0741a4ed9d2e16c5fa82671f28efb F test/pcache.test 4118a183908ecaed343a06fcef3ba82e87e0129d F test/pcache2.test 0d85f2ab6963aee28c671d4c71bec038c00a1d16 -F test/permutations.test 9c73c6524ad0603b9f6ab3d49c77ac5a94919732 +F test/permutations.test ca1c985cf68c692096d0325b33c62f2b576446a5 F test/pragma.test ed78d200f65c6998df51196cb8c39d5300570f24 F test/pragma2.test 5364893491b9231dd170e3459bfc2e2342658b47 F test/printf.test 05970cde31b1a9f54bd75af60597be75a5c54fea @@ -857,7 +857,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 8b0b009f292e0b52bffb08662aef67d9465e5a0a -R 543bdeb104c741398b4c52508ded2b55 +P 6ba6e59a9d528fb1bdc530d48ab96a2de6e190d6 +R 9391d10b44cd28a1b6ec0c0ec67ccf03 U dan -Z 3a31e4f571c8c095188e7b06c7f17753 +Z b678b2a32447a7b3c62dfb66bd5817c3 diff --git a/manifest.uuid b/manifest.uuid index 45e01d1bdb..af7cfa2e2e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -6ba6e59a9d528fb1bdc530d48ab96a2de6e190d6 \ No newline at end of file +56a9ce7774a6f163a62684dd8d5357ce16a07de1 \ No newline at end of file diff --git a/test/exclusive2.test b/test/exclusive2.test index 00e2c16875..6c3571d23b 100644 --- a/test/exclusive2.test +++ b/test/exclusive2.test @@ -83,7 +83,7 @@ do_test exclusive2-1.0 { # The following tests - exclusive2-1.X - check that: # # 1-3: Build a database with connection 1, calculate a signature. -# 4-9: Modify the database using a second connection in a way that +# 4-7: Modify the database using a second connection in a way that # does not modify the freelist, then reset the pager change-counter # to the value it had before the modifications. # 8: Check that using the first connection, the database signature @@ -99,6 +99,11 @@ do_test exclusive2-1.0 { # the cache size must be at least 17. Otherwise, some pages will be # loaded from the database file in step 8. # +# For similar reasons, this test does not work with the memsubsys1 permutation. +# Permutation memsubsys1 configures the pcache subsystem to use a static +# allocation of 24 pages (shared between all pagers). This is not enough for +# this test. +# do_test exclusive2-1.1 { execsql { BEGIN; @@ -146,10 +151,12 @@ do_test exclusive2-1.6 { do_test exclusive2-1.7 { pagerChangeCounter test.db 1 } {1} -do_test exclusive2-1.9 { - t1sig - expr {[t1sig] eq $::sig} -} {1} +if {[permutation] != "memsubsys1"} { + do_test exclusive2-1.9 { + t1sig + expr {[t1sig] eq $::sig} + } {1} +} do_test exclusive2-1.10 { pagerChangeCounter test.db 2 } {2} diff --git a/test/incrblob.test b/test/incrblob.test index 0865912956..e0b2787792 100644 --- a/test/incrblob.test +++ b/test/incrblob.test @@ -420,86 +420,94 @@ unset -nocomplain ::text # after the transaction is commited and the blob channel # closed. # -sqlite3_soft_heap_limit 0 -do_test incrblob-6.1 { - sqlite3 db2 test.db - execsql { - BEGIN; - INSERT INTO blobs(k, v, i) VALUES('a', 'different', 'connection'); - } db2 -} {} -do_test incrblob-6.2 { - execsql { - SELECT rowid FROM blobs - } -} {1 2 3} -do_test incrblob-6.3 { - set rc [catch { - db incrblob blobs v 1 - } msg] - list $rc $msg -} {1 {database is locked}} -do_test incrblob-6.4 { - set rc [catch { - db incrblob blobs v 3 - } msg] - list $rc $msg -} {1 {database is locked}} -do_test incrblob-6.5 { - set ::blob [db incrblob -readonly blobs v 3] - read $::blob -} {hello} -do_test incrblob-6.6 { - close $::blob -} {} - -do_test incrblob-6.7 { - set ::blob [db2 incrblob blobs i 4] - gets $::blob -} {connection} -do_test incrblob-6.8 { - tell $::blob -} {10} -do_test incrblob-6.9 { - seek $::blob 0 - puts -nonewline $::blob "invocation" - flush $::blob -} {} - -# At this point rollback should be illegal (because -# there is an open blob channel). But commit is also illegal because -# the open blob is read-write. +# This test does not work with the "memsubsys1" configuration. +# Permutation memsubsys1 configures a very small static allocation +# for use as page-cache memory. This causes SQLite to upgrade +# to an exclusive lock when writing earlier than usual, which +# makes some of these tests fail. # -do_test incrblob-6.10 { - catchsql { - ROLLBACK; - } db2 -} {1 {cannot rollback transaction - SQL statements in progress}} -do_test incrblob-6.11 { - catchsql { - COMMIT; - } db2 -} {1 {cannot commit transaction - SQL statements in progress}} - -do_test incrblob-6.12 { - execsql { - SELECT * FROM blobs WHERE rowid = 4; - } -} {} -do_test incrblob-6.13 { - close $::blob -} {} -do_test incrblob-6.14 { - catchsql { - COMMIT; - } db2 -} {0 {}} -do_test incrblob-6.15 { - execsql { - SELECT * FROM blobs WHERE rowid = 4; - } -} {a different invocation} -db2 close +sqlite3_soft_heap_limit 0 +if {[permutation] != "memsubsys1"} { + do_test incrblob-6.1 { + sqlite3 db2 test.db + execsql { + BEGIN; + INSERT INTO blobs(k, v, i) VALUES('a', 'different', 'connection'); + } db2 + } {} + do_test incrblob-6.2 { + execsql { + SELECT rowid FROM blobs + } + } {1 2 3} + do_test incrblob-6.3 { + set rc [catch { + db incrblob blobs v 1 + } msg] + list $rc $msg + } {1 {database is locked}} + do_test incrblob-6.4 { + set rc [catch { + db incrblob blobs v 3 + } msg] + list $rc $msg + } {1 {database is locked}} + do_test incrblob-6.5 { + set ::blob [db incrblob -readonly blobs v 3] + read $::blob + } {hello} + do_test incrblob-6.6 { + close $::blob + } {} + + do_test incrblob-6.7 { + set ::blob [db2 incrblob blobs i 4] + gets $::blob + } {connection} + do_test incrblob-6.8 { + tell $::blob + } {10} + do_test incrblob-6.9 { + seek $::blob 0 + puts -nonewline $::blob "invocation" + flush $::blob + } {} + + # At this point rollback should be illegal (because + # there is an open blob channel). But commit is also illegal because + # the open blob is read-write. + # + do_test incrblob-6.10 { + catchsql { + ROLLBACK; + } db2 + } {1 {cannot rollback transaction - SQL statements in progress}} + do_test incrblob-6.11 { + catchsql { + COMMIT; + } db2 + } {1 {cannot commit transaction - SQL statements in progress}} + + do_test incrblob-6.12 { + execsql { + SELECT * FROM blobs WHERE rowid = 4; + } + } {} + do_test incrblob-6.13 { + close $::blob + } {} + do_test incrblob-6.14 { + catchsql { + COMMIT; + } db2 + } {0 {}} + do_test incrblob-6.15 { + execsql { + SELECT * FROM blobs WHERE rowid = 4; + } + } {a different invocation} + db2 close +} sqlite3_soft_heap_limit $cmdlinearg(soft-heap-limit) #----------------------------------------------------------------------- diff --git a/test/pagerfault.test b/test/pagerfault.test index 71aa6f72c3..adea58d500 100644 --- a/test/pagerfault.test +++ b/test/pagerfault.test @@ -674,21 +674,29 @@ do_faultsim_test pagerfault-14a -prep { faultsim_test_result {0 {}} {1 {}} {1 {SQL logic error or missing database}} } -do_faultsim_test pagerfault-14b -prep { - catch { db2 close } - faultsim_restore_and_reopen - sqlite3 db2 "" - db2 eval { PRAGMA page_size = 4096; CREATE TABLE xx(a) } -} -body { - sqlite3_backup B db2 main db main - B step 200 - set rc [B finish] - if {[string match SQLITE_IOERR_* $rc]} {set rc SQLITE_IOERR} - if {$rc != "SQLITE_OK"} { error [sqlite3_test_errstr $rc] } - set {} {} -} -test { - faultsim_test_result {0 {}} {1 {sqlite3_backup_init() failed}} +# If TEMP_STORE is 2 or greater, then the database [db2] will be created +# as an in-memory database. This test will not work in that case, as it +# is not possible to change the page-size of an in-memory database. Even +# using the backup API. +# +if {$TEMP_STORE<2} { + do_faultsim_test pagerfault-14b -prep { + catch { db2 close } + faultsim_restore_and_reopen + sqlite3 db2 "" + db2 eval { PRAGMA page_size = 4096; CREATE TABLE xx(a) } + } -body { + sqlite3_backup B db2 main db main + B step 200 + set rc [B finish] + if {[string match SQLITE_IOERR_* $rc]} {set rc SQLITE_IOERR} + if {$rc != "SQLITE_OK"} { error [sqlite3_test_errstr $rc] } + set {} {} + } -test { + faultsim_test_result {0 {}} {1 {sqlite3_backup_init() failed}} + } } + do_faultsim_test pagerfault-14c -prep { catch { db2 close } faultsim_restore_and_reopen diff --git a/test/permutations.test b/test/permutations.test index 06f629468f..fb1604ca96 100644 --- a/test/permutations.test +++ b/test/permutations.test @@ -95,7 +95,7 @@ if {$::tcl_platform(platform)!="unix"} { set alltests [test_set $alltests -exclude { all.test async.test quick.test veryquick.test memleak.test permutations.test soak.test fts3.test - mallocAll.tes rtree.test + mallocAll.test rtree.test }] set allquicktests [test_set $alltests -exclude { -- 2.47.2