Annotation of embedaddon/sqlite3/test/memleak.test, revision 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>