sqlite/test/memleak.test
drh 2e38c32b67 Modify btree.c so that is allocates big data structures using malloc()
instead of allocating from the stack.  Stack allocations cause problems
for embedded systems and pthreads implementations that only allocate a
limited amount of stack space. (CVS 1937)

FossilOrigin-Name: 4595292f936bdbec10734f42682824e91ff71d11
2004-09-03 18:38:44 +00:00

89 lines
2.0 KiB
Plaintext

# 2001 September 15
#
# The author disclaims copyright to this source code. In place of
# a legal notice, here is a blessing:
#
# May you do good and not evil.
# May you find forgiveness for yourself and forgive others.
# May you share freely, never taking more than you give.
#
#***********************************************************************
# This file runs all tests.
#
# $Id: memleak.test,v 1.7 2004/09/03 18:38:46 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
rename finish_test really_finish_test
proc finish_test {} {
catch {db close}
memleak_check
}
if {[file exists ./sqlite_test_count]} {
set COUNT [exec cat ./sqlite_test_count]
} else {
set COUNT 3
}
# LeakList will hold a list of the number of unfreed mallocs after
# each round of the test. This number should be constant. If it
# grows, it may mean there is a memory leak in the library.
#
set LeakList {}
set EXCLUDE {
all.test
quick.test
malloc.test
misuse.test
memleak.test
btree2.test
trans.test
crash.test
corrupt.test
}
if {[sqlite3 -has-codec]} {
# lappend EXCLUDE
}
if {[llength $argv]>0} {
set FILELIST $argv
set argv {}
} else {
set FILELIST [lsort -dictionary [glob $testdir/*.test]]
}
foreach testfile $FILELIST {
set tail [file tail $testfile]
if {[lsearch -exact $EXCLUDE $tail]>=0} continue
set LeakList {}
for {set COUNTER 0} {$COUNTER<$COUNT} {incr COUNTER} {
source $testfile
if {[info exists Leak]} {
lappend LeakList $Leak
}
}
if {$LeakList!=""} {
puts -nonewline memory-leak-test-$tail...
incr ::nTest
foreach x $LeakList {
if {$x!=[lindex $LeakList 0]} {
puts " failed! ($LeakList)"
incr ::nErr
lappend ::failList memory-leak-test-$tail
break
}
}
puts " Ok"
}
}
really_finish_test
# Run the malloc tests and the misuse test after memory leak detection.
# Both tests leak memory.
#
#catch {source $testdir/misuse.test}
#catch {source $testdir/malloc.test}
really_finish_test