Home | History | Annotate | Download | only in test
      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
     79