|
1 # 2007 April 30 |
|
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 contains additional out-of-memory checks (see malloc.tcl). |
|
12 # |
|
13 # $Id: mallocA.test,v 1.8 2008/02/18 22:24:58 drh Exp $ |
|
14 |
|
15 set testdir [file dirname $argv0] |
|
16 source $testdir/tester.tcl |
|
17 source $testdir/malloc_common.tcl |
|
18 |
|
19 # Only run these tests if memory debugging is turned on. |
|
20 # |
|
21 if {!$MEMDEBUG} { |
|
22 puts "Skipping mallocA tests: not compiled with -DSQLITE_MEMDEBUG..." |
|
23 finish_test |
|
24 return |
|
25 } |
|
26 |
|
27 |
|
28 # Construct a test database |
|
29 # |
|
30 file delete -force test.db.bu |
|
31 db eval { |
|
32 CREATE TABLE t1(a COLLATE NOCASE,b,c); |
|
33 INSERT INTO t1 VALUES(1,2,3); |
|
34 INSERT INTO t1 VALUES(1,2,4); |
|
35 INSERT INTO t1 VALUES(2,3,4); |
|
36 CREATE INDEX t1i1 ON t1(a); |
|
37 CREATE INDEX t1i2 ON t1(b,c); |
|
38 CREATE TABLE t2(x,y,z); |
|
39 } |
|
40 db close |
|
41 file copy test.db test.db.bu |
|
42 |
|
43 |
|
44 do_malloc_test mallocA-1 -testdb test.db.bu -sqlbody { |
|
45 ANALYZE |
|
46 } |
|
47 do_malloc_test mallocA-1.1 -testdb test.db.bu -sqlbody { |
|
48 ANALYZE t1 |
|
49 } |
|
50 do_malloc_test mallocA-1.2 -testdb test.db.bu -sqlbody { |
|
51 ANALYZE main |
|
52 } |
|
53 do_malloc_test mallocA-1.3 -testdb test.db.bu -sqlbody { |
|
54 ANALYZE main.t1 |
|
55 } |
|
56 ifcapable reindex { |
|
57 do_malloc_test mallocA-2 -testdb test.db.bu -sqlbody { |
|
58 REINDEX; |
|
59 } |
|
60 do_malloc_test mallocA-3 -testdb test.db.bu -sqlbody { |
|
61 REINDEX t1; |
|
62 } |
|
63 do_malloc_test mallocA-4 -testdb test.db.bu -sqlbody { |
|
64 REINDEX main.t1; |
|
65 } |
|
66 do_malloc_test mallocA-5 -testdb test.db.bu -sqlbody { |
|
67 REINDEX nocase; |
|
68 } |
|
69 } |
|
70 |
|
71 # Ensure that no file descriptors were leaked. |
|
72 do_test malloc-99.X { |
|
73 catch {db close} |
|
74 set sqlite_open_file_count |
|
75 } {0} |
|
76 |
|
77 file delete -force test.db.bu |
|
78 finish_test |