CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
memleak.test96 linesDownload Raw Back to test
1# 2001 September 152#3# The author disclaims copyright to this source code.  In place of4# 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 15set testdir [file dirname $argv0]16source $testdir/tester.tcl17rename finish_test memleak_finish_test18proc finish_test {} {19  catch {db close}20  memleak_check21}22 23if {[file exists ./sqlite_test_count]} {24  set COUNT [exec cat ./sqlite_test_count]25} else {26  set COUNT 327}28 29# LeakList will hold a list of the number of unfreed mallocs after30# each round of the test.  This number should be constant.  If it31# grows, it may mean there is a memory leak in the library.32#33set LeakList {}34 35set EXCLUDE {36  all.test37  quick.test38  misuse.test39  memleak.test40  btree2.test41  trans.test42  crash.test43  autovacuum_crash.test44}45# Test files btree2.test and btree4.test don't work if the 46# SQLITE_DEFAULT_AUTOVACUUM macro is defined to true (because they depend47# on tables being allocated starting at page 2).48#49ifcapable default_autovacuum {50  lappend EXCLUDE btree2.test51  lappend EXCLUDE btree4.test52}53 54if {[sqlite3 -has-codec]} {55  # lappend EXCLUDE 56}57if {[llength $argv]>0} {58  set FILELIST $argv59  set argv {}60} else {61  set FILELIST [lsort -dictionary [glob $testdir/*.test]]62}63 64foreach testfile $FILELIST {65  set tail [file tail $testfile]66  if {[lsearch -exact $EXCLUDE $tail]>=0} continue67  set LeakList {}68  for {set COUNTER 0} {$COUNTER<$COUNT} {incr COUNTER} {69    source $testfile70    if {[info exists Leak]} {71      lappend LeakList $Leak72    }73  }74  if {$LeakList!=""} {75    puts -nonewline memory-leak-test-$tail...76    incr_ntest77    foreach x $LeakList {78      if {$x!=[lindex $LeakList 0]} {79         puts " failed! ($LeakList)"80         fail_test memory-leak-test-$tail81         break82       }83    }84    puts " Ok"85  }86}87memleak_finish_test88 89# Run the malloc tests and the misuse test after memory leak detection.90# Both tests leak memory.91#92#catch {source $testdir/misuse.test}93#catch {source $testdir/malloc.test}94 95memleak_finish_test96