15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# May you do good and not evil. 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# May you find forgiveness for yourself and forgive others. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# May you share freely, never taking more than you give. 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#*********************************************************************** 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This file runs all out-of-memory tests. 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# $Id: mallocAll.test,v 1.1 2007/11/26 13:36:00 drh Exp $ 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)proc lshift {lvar} { 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) upvar $lvar l 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set ret [lindex $l 0] 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set l [lrange $l 1 end] 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return $ret 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)while {[set arg [lshift argv]] != ""} { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) switch -- $arg { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) -sharedpagercache { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sqlite3_enable_shared_cache 1 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) default { 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set argv [linsert $argv 0 $arg] 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) break 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set testdir [file dirname $argv0] 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)source $testdir/tester.tcl 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)rename finish_test really_finish_test 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)proc finish_test {} {} 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set G(isquick) 1 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set EXCLUDE { 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mallocAll.test 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if {[sqlite3 -has-codec]} { 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # lappend EXCLUDE \ 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # conflict.test 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Files to include in the test. If this list is empty then everything 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# that is not in the EXCLUDE list is run. 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set INCLUDE { 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)foreach testfile [lsort -dictionary [glob $testdir/*malloc*.test]] { 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set tail [file tail $testfile] 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if {[lsearch -exact $EXCLUDE $tail]>=0} continue 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if {[llength $INCLUDE]>0 && [lsearch -exact $INCLUDE $tail]<0} continue 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) source $testfile 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) catch {db close} 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if {$sqlite_open_file_count>0} { 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) puts "$tail did not close all files: $sqlite_open_file_count" 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) fail_test $tail 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set sqlite_open_file_count 0 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)source $testdir/misuse.test 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)set sqlite_open_file_count 0 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)really_finish_test 67