~ubuntu-branches/ubuntu/karmic/gears/karmic

« back to all changes in this revision

Viewing changes to third_party/sqlite_google/test/memleak.test

  • Committer: Bazaar Package Importer
  • Author(s): Stefan Lesicnik
  • Date: 2009-04-30 19:15:25 UTC
  • Revision ID: james.westby@ubuntu.com-20090430191525-0790sb5wzg8ou0xb
Tags: upstream-0.5.21.0~svn3334+dfsg
ImportĀ upstreamĀ versionĀ 0.5.21.0~svn3334+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
         incr ::nErr
 
83
         lappend ::failList memory-leak-test-$tail
 
84
         break
 
85
       }
 
86
    }
 
87
    puts " Ok"
 
88
  }
 
89
}
 
90
memleak_finish_test
 
91
 
 
92
# Run the malloc tests and the misuse test after memory leak detection.
 
93
# Both tests leak memory.
 
94
#
 
95
#catch {source $testdir/misuse.test}
 
96
#catch {source $testdir/malloc.test}
 
97
 
 
98
memleak_finish_test