1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-27 20:41:58 +03:00

All of the malloc test cases run. Still seeing failures in malloc4.test. (CVS 4272)

FossilOrigin-Name: 205d0b881d541db65837ce6cf44d58d607635bc2
This commit is contained in:
drh
2007-08-22 22:04:37 +00:00
parent f3a65f7e44
commit ed138fb3bc
18 changed files with 216 additions and 677 deletions

View File

@ -13,13 +13,14 @@
# correctly. The emphasis of these tests are the _prepare(), _step() and
# _finalize() calls.
#
# $Id: malloc3.test,v 1.10 2007/03/28 01:59:34 drh Exp $
# $Id: malloc3.test,v 1.11 2007/08/22 22:04:37 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
# Only run these tests if memory debugging is turned on.
if {[info command sqlite_malloc_stat]==""} {
#
ifcapable !memdebug {
puts "Skipping malloc tests: not compiled with -DSQLITE_MEMDEBUG..."
finish_test
return
@ -559,7 +560,7 @@ proc run_test {arglist {pcstart 0} {iFailStart 1}} {
set ::rollback_hook_count 0
set ac [sqlite3_get_autocommit $::DB] ;# Auto-Commit
sqlite_malloc_fail $iFail
sqlite3_memdebug_fail $iFail 1
set rc [catch {db eval [lindex $v 1]} msg] ;# True error occurs
set nac [sqlite3_get_autocommit $::DB] ;# New Auto-Commit
@ -574,11 +575,12 @@ proc run_test {arglist {pcstart 0} {iFailStart 1}} {
} {1}
}
set nFail [sqlite3_memdebug_fail -1 -1]
if {$rc == 0} {
# Successful execution of sql. Our "mallocs-until-failure"
# count should be greater than 0. Otherwise a malloc() failed
# and the error was not reported.
if {[lindex [sqlite_malloc_stat] 2] <= 0} {
if {$nFail>0} {
error "Unreported malloc() failure"
}
@ -591,7 +593,6 @@ proc run_test {arglist {pcstart 0} {iFailStart 1}} {
incr pc
set iFail 1
sqlite_malloc_fail 0
integrity_check "malloc3-(integrity).$iterid"
} elseif {[regexp {.*out of memory} $msg]} {
# Out of memory error, as expected
@ -638,9 +639,7 @@ db cache size 0
run_test $::run_test_script 9 1
# run_test [lrange $::run_test_script 0 3] 0 63
sqlite_malloc_fail 0
sqlite3_memdebug_fail -1 -1
db close
pp_check_for_leaks
finish_test