Home | History | Annotate | Download | only in test
      1 # 2007 Aug 10
      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 # 
     12 # This test script reproduces the problem reported by ticket #2565,
     13 # A database corruption bug that occurs in auto_vacuum mode when
     14 # the soft_heap_limit is set low enough to be triggered.
     15 #
     16 # $Id: softheap1.test,v 1.5 2008/07/08 17:13:59 danielk1977 Exp $
     17 
     18 
     19 set testdir [file dirname $argv0]
     20 source $testdir/tester.tcl
     21 
     22 ifcapable !integrityck {
     23   finish_test
     24   return
     25 }
     26 
     27 sqlite3_soft_heap_limit -1
     28 sqlite3_soft_heap_limit 0
     29 sqlite3_soft_heap_limit 5000
     30 do_test softheap1-1.1 {
     31   execsql {
     32     PRAGMA auto_vacuum=1;
     33     CREATE TABLE t1(x);
     34     INSERT INTO t1 VALUES(hex(randomblob(1000)));
     35     BEGIN;
     36   }
     37   execsql {
     38     CREATE TABLE t2 AS SELECT * FROM t1;
     39   }
     40   execsql {
     41     ROLLBACK;
     42   }
     43   execsql {
     44     PRAGMA integrity_check;
     45   }
     46 } {ok}
     47 
     48 sqlite3_soft_heap_limit $cmdlinearg(soft-heap-limit)
     49 finish_test
     50