From: danielk1977 Date: Thu, 30 Aug 2007 14:41:34 +0000 (+0000) Subject: Fixes to malloc3.test so that it can run in transient or persistent failure mode... X-Git-Tag: version-3.6.10~1841 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=37f0d221994c668998fecb016fea27553577fca3;p=thirdparty%2Fsqlite.git Fixes to malloc3.test so that it can run in transient or persistent failure mode. (CVS 4336) FossilOrigin-Name: e14e3688eb64577a2a7070e4e47e715a5d7d5089 --- diff --git a/manifest b/manifest index 2ea092cd27..ceab1a40a5 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Bug\sfixes\sin\sthe\smutex\sheader\sfile.\s\sTickets\s#2599\sand\s#2600.\s(CVS\s4335) -D 2007-08-30T14:10:30 +C Fixes\sto\smalloc3.test\sso\sthat\sit\scan\srun\sin\stransient\sor\spersistent\sfailure\smode.\s(CVS\s4336) +D 2007-08-30T14:41:34 F Makefile.in bfcc303429a5d9dcd552d807ee016c77427418c3 F Makefile.linux-gcc 65241babba6faf1152bf86574477baab19190499 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 @@ -347,7 +347,7 @@ F test/lock4.test 49e22396b9be6e047b3d35469f233be79153c9d5 F test/main.test e7212ce1023957c7209778cc87fa932bd79ba89a F test/malloc.test 52306f056e7359e68ed2e204f37f47a0e2020c57 F test/malloc2.test c1a74f46a3581b56df29ff46a4e1c99b41c44ad9 -F test/malloc3.test 95211d9b2394252cacf836c62fd3d405c58f73bd +F test/malloc3.test ca656197fe627d006012f50f084a712bf154f0bb F test/malloc4.test 08830f5964a95f5a75218f56e7742e5dbe482e53 F test/malloc5.test 9db9205a5d444e23043368f961f92641c7770199 F test/malloc6.test 3733b9bd4e039c3239f869c40edbb88172025e2e @@ -568,7 +568,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5 -P d3e502263808c1fe0487fda02f16adcbb1279183 -R 8ab4e043a311e4bca4b56b1d50a59fcc -U drh -Z 20709391f71da3ae2883ec1a97c7dd8d +P 4bdfe1419c536fec5b3c0a7fbe3d0ff52f183f43 +R ef8c07e08dd9f512fe2fb64c573a68e8 +U danielk1977 +Z 77487b8985e6f89316a2736312affc63 diff --git a/manifest.uuid b/manifest.uuid index 006214800e..afd1a8f1b6 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -4bdfe1419c536fec5b3c0a7fbe3d0ff52f183f43 \ No newline at end of file +e14e3688eb64577a2a7070e4e47e715a5d7d5089 \ No newline at end of file diff --git a/test/malloc3.test b/test/malloc3.test index 2d76a78f47..83b0ee5e37 100644 --- a/test/malloc3.test +++ b/test/malloc3.test @@ -13,7 +13,7 @@ # correctly. The emphasis of these tests are the _prepare(), _step() and # _finalize() calls. # -# $Id: malloc3.test,v 1.12 2007/08/29 12:31:29 danielk1977 Exp $ +# $Id: malloc3.test,v 1.13 2007/08/30 14:41:34 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl @@ -177,7 +177,7 @@ proc SQL {a1 {a2 ""}} { # argument is either 1 or 0, the expected value of the auto-commit flag. # proc TEST_AUTOCOMMIT {id a} { - TEST $id "do_test \$testid { sqlite3_get_autocommit $::DB } {$a}" + TEST $id "do_test \$testid { sqlite3_get_autocommit \$::DB } {$a}" } #-------------------------------------------------------------------------- @@ -519,7 +519,7 @@ SQL COMMIT # End of test program declaration #-------------------------------------------------------------------------- -proc run_test {arglist {pcstart 0} {iFailStart 1}} { +proc run_test {arglist iRepeat {pcstart 0} {iFailStart 1}} { if {[llength $arglist] %2} { error "Uneven number of arguments to TEST" } @@ -560,11 +560,10 @@ proc run_test {arglist {pcstart 0} {iFailStart 1}} { set ::rollback_hook_count 0 set ac [sqlite3_get_autocommit $::DB] ;# Auto-Commit - sqlite3_memdebug_fail $iFail -repeat 1 + sqlite3_memdebug_fail $iFail -repeat 0 set rc [catch {db eval [lindex $v 1]} msg] ;# True error occurs set nac [sqlite3_get_autocommit $::DB] ;# New Auto-Commit - if {$rc != 0 && $nac && !$ac} { # Before [db eval] the auto-commit flag was clear. Now it # is set. Since an error occured we assume this was not a @@ -634,12 +633,21 @@ proc run_test {arglist {pcstart 0} {iFailStart 1}} { } } -# Turn of the Tcl interface's prepared statement caching facility. +# Turn of the Tcl interface's prepared statement caching facility. Then +# run the tests with "persistent" malloc failures. db cache size 0 +run_test $::run_test_script 1 -run_test $::run_test_script 9 1 -# run_test [lrange $::run_test_script 0 3] 0 63 -sqlite3_memdebug_fail -1 +# Close and reopen the db. db close +file delete -force test.db test.db-journal +sqlite3 db test.db +set ::DB [sqlite3_connection_pointer db] +# Turn of the Tcl interface's prepared statement caching facility in +# the new connnection. Then run the tests with "transient" malloc failures. +db cache size 0 +run_test $::run_test_script 0 + +sqlite3_memdebug_fail -1 finish_test