Annotation of embedaddon/sqlite3/test/memleak.test, revision 1.1.1.1

1.1       misho       1: # 2001 September 15
                      2: #
                      3: # The author disclaims copyright to this source code.  In place of
                      4: # a legal notice, here is a blessing:
                      5: #
                      6: #    May you do good and not evil.
                      7: #    May you find forgiveness for yourself and forgive others.
                      8: #    May you share freely, never taking more than you give.
                      9: #
                     10: #***********************************************************************
                     11: # This file runs all tests.
                     12: #
                     13: # $Id: memleak.test,v 1.10 2007/03/30 17:17:52 drh Exp $
                     14: 
                     15: set testdir [file dirname $argv0]
                     16: source $testdir/tester.tcl
                     17: rename finish_test memleak_finish_test
                     18: proc finish_test {} {
                     19:   catch {db close}
                     20:   memleak_check
                     21: }
                     22: 
                     23: if {[file exists ./sqlite_test_count]} {
                     24:   set COUNT [exec cat ./sqlite_test_count]
                     25: } else {
                     26:   set COUNT 3
                     27: }
                     28: 
                     29: # LeakList will hold a list of the number of unfreed mallocs after
                     30: # each round of the test.  This number should be constant.  If it
                     31: # grows, it may mean there is a memory leak in the library.
                     32: #
                     33: set LeakList {}
                     34: 
                     35: set EXCLUDE {
                     36:   all.test
                     37:   quick.test
                     38:   misuse.test
                     39:   memleak.test
                     40:   btree2.test
                     41:   async.test
                     42:   async2.test
                     43:   trans.test
                     44:   crash.test
                     45:   autovacuum_crash.test
                     46: }
                     47: # Test files btree2.test and btree4.test don't work if the 
                     48: # SQLITE_DEFAULT_AUTOVACUUM macro is defined to true (because they depend
                     49: # on tables being allocated starting at page 2).
                     50: #
                     51: ifcapable default_autovacuum {
                     52:   lappend EXCLUDE btree2.test
                     53:   lappend EXCLUDE btree4.test
                     54: }
                     55: 
                     56: if {[sqlite3 -has-codec]} {
                     57:   # lappend EXCLUDE 
                     58: }
                     59: if {[llength $argv]>0} {
                     60:   set FILELIST $argv
                     61:   set argv {}
                     62: } else {
                     63:   set FILELIST [lsort -dictionary [glob $testdir/*.test]]
                     64: }
                     65: 
                     66: foreach testfile $FILELIST {
                     67:   set tail [file tail $testfile]
                     68:   if {[lsearch -exact $EXCLUDE $tail]>=0} continue
                     69:   set LeakList {}
                     70:   for {set COUNTER 0} {$COUNTER<$COUNT} {incr COUNTER} {
                     71:     source $testfile
                     72:     if {[info exists Leak]} {
                     73:       lappend LeakList $Leak
                     74:     }
                     75:   }
                     76:   if {$LeakList!=""} {
                     77:     puts -nonewline memory-leak-test-$tail...
                     78:     incr_ntest
                     79:     foreach x $LeakList {
                     80:       if {$x!=[lindex $LeakList 0]} {
                     81:          puts " failed! ($LeakList)"
                     82:          fail_test memory-leak-test-$tail
                     83:          break
                     84:        }
                     85:     }
                     86:     puts " Ok"
                     87:   }
                     88: }
                     89: memleak_finish_test
                     90: 
                     91: # Run the malloc tests and the misuse test after memory leak detection.
                     92: # Both tests leak memory.
                     93: #
                     94: #catch {source $testdir/misuse.test}
                     95: #catch {source $testdir/malloc.test}
                     96: 
                     97: memleak_finish_test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>