|
1 # |
|
2 # May you do good and not evil. |
|
3 # May you find forgiveness for yourself and forgive others. |
|
4 # May you share freely, never taking more than you give. |
|
5 # |
|
6 #*********************************************************************** |
|
7 # This file runs all out-of-memory tests. |
|
8 # |
|
9 # $Id: mallocAll.test,v 1.1 2007/11/26 13:36:00 drh Exp $ |
|
10 |
|
11 proc lshift {lvar} { |
|
12 upvar $lvar l |
|
13 set ret [lindex $l 0] |
|
14 set l [lrange $l 1 end] |
|
15 return $ret |
|
16 } |
|
17 while {[set arg [lshift argv]] != ""} { |
|
18 switch -- $arg { |
|
19 -sharedpagercache { |
|
20 sqlite3_enable_shared_cache 1 |
|
21 } |
|
22 default { |
|
23 set argv [linsert $argv 0 $arg] |
|
24 break |
|
25 } |
|
26 } |
|
27 } |
|
28 |
|
29 set testdir [file dirname $argv0] |
|
30 source $testdir/tester.tcl |
|
31 rename finish_test really_finish_test |
|
32 proc finish_test {} {} |
|
33 set ISQUICK 1 |
|
34 |
|
35 set EXCLUDE { |
|
36 mallocAll.test |
|
37 } |
|
38 |
|
39 if {[sqlite3 -has-codec]} { |
|
40 # lappend EXCLUDE \ |
|
41 # conflict.test |
|
42 } |
|
43 |
|
44 |
|
45 # Files to include in the test. If this list is empty then everything |
|
46 # that is not in the EXCLUDE list is run. |
|
47 # |
|
48 set INCLUDE { |
|
49 } |
|
50 |
|
51 foreach testfile [lsort -dictionary [glob $testdir/*malloc*.test]] { |
|
52 set tail [file tail $testfile] |
|
53 if {[lsearch -exact $EXCLUDE $tail]>=0} continue |
|
54 if {[llength $INCLUDE]>0 && [lsearch -exact $INCLUDE $tail]<0} continue |
|
55 source $testfile |
|
56 catch {db close} |
|
57 if {$sqlite_open_file_count>0} { |
|
58 puts "$tail did not close all files: $sqlite_open_file_count" |
|
59 incr nErr |
|
60 lappend ::failList $tail |
|
61 set sqlite_open_file_count 0 |
|
62 } |
|
63 } |
|
64 source $testdir/misuse.test |
|
65 |
|
66 set sqlite_open_file_count 0 |
|
67 really_finish_test |