Same fix as r45172 for classes/iconimage:
[AROS-Contrib.git] / sqlite3 / test / memleak.test
blob54468c51ed4ea1865fb7eaba969bb0ac28a3882f
1 # 2001 September 15
3 # The author disclaims copyright to this source code.  In place of
4 # a legal notice, here is a blessing:
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.
10 #***********************************************************************
11 # This file runs all tests.
13 # $Id: memleak.test,v 1.9 2005/03/16 12:15:22 danielk1977 Exp $
15 set testdir [file dirname $argv0]
16 source $testdir/tester.tcl
17 rename finish_test really_finish_test
18 proc finish_test {} {
19   catch {db close}
20   memleak_check
23 if {[file exists ./sqlite_test_count]} {
24   set COUNT [exec cat ./sqlite_test_count]
25 } else {
26   set COUNT 3
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.
33 set LeakList {}
35 set EXCLUDE {
36   all.test
37   quick.test
38   misuse.test
39   memleak.test
40   btree2.test
41   trans.test
42   crash.test
43   autovacuum_crash.test
45 # Test files btree2.test and btree4.test don't work if the 
46 # SQLITE_DEFAULT_AUTOVACUUM macro is defined to true (because they depend
47 # on tables being allocated starting at page 2).
49 ifcapable default_autovacuum {
50   lappend EXCLUDE btree2.test
51   lappend EXCLUDE btree4.test
54 if {[sqlite3 -has-codec]} {
55   # lappend EXCLUDE 
57 if {[llength $argv]>0} {
58   set FILELIST $argv
59   set argv {}
60 } else {
61   set FILELIST [lsort -dictionary [glob $testdir/*.test]]
64 foreach testfile $FILELIST {
65   set tail [file tail $testfile]
66   if {[lsearch -exact $EXCLUDE $tail]>=0} continue
67   set LeakList {}
68   for {set COUNTER 0} {$COUNTER<$COUNT} {incr COUNTER} {
69     source $testfile
70     if {[info exists Leak]} {
71       lappend LeakList $Leak
72     }
73   }
74   if {$LeakList!=""} {
75     puts -nonewline memory-leak-test-$tail...
76     incr ::nTest
77     foreach x $LeakList {
78       if {$x!=[lindex $LeakList 0]} {
79          puts " failed! ($LeakList)"
80          incr ::nErr
81          lappend ::failList memory-leak-test-$tail
82          break
83        }
84     }
85     puts " Ok"
86   }
88 really_finish_test
90 # Run the malloc tests and the misuse test after memory leak detection.
91 # Both tests leak memory.
93 #catch {source $testdir/misuse.test}
94 #catch {source $testdir/malloc.test}
96 really_finish_test