File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / sqlite3 / test / tkt1667.test
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:04:16 2012 UTC (12 years, 10 months ago) by misho
Branches: sqlite3, MAIN
CVS tags: v3_7_10, HEAD
sqlite3

    1: # 2006 February 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: # This file implements regression tests for SQLite library.
   12: #
   13: # This file implements tests to verify that ticket #1667 has been
   14: # fixed.  
   15: #
   16: #
   17: # $Id: tkt1667.test,v 1.1.1.1 2012/02/21 17:04:16 misho Exp $
   18: 
   19: set testdir [file dirname $argv0]
   20: source $testdir/tester.tcl
   21: 
   22: ifcapable !autovacuum||!tclvar {
   23:   finish_test
   24:   return
   25: }
   26: 
   27: db close
   28: forcedelete test.db test.db-journal
   29: 
   30: # Set the pending byte offset such that the page it is on is
   31: # the first autovacuum pointer map page in the file (assume a page 
   32: # size of 1024).
   33: 
   34: set first_ptrmap_page   [expr 1024/5 + 3]
   35: sqlite3_test_control_pending_byte [expr 1024 * ($first_ptrmap_page-1)]
   36: 
   37: sqlite3 db test.db
   38: 
   39: do_test tkt1667-1 {
   40:   execsql {
   41:     PRAGMA auto_vacuum = 1;
   42:     BEGIN;
   43:     CREATE TABLE t1(a, b);
   44:   }
   45:   for {set i 0} {$i < 500} {incr i} {
   46:     execsql {
   47:       INSERT INTO t1 VALUES($i, randstr(1000, 2000))
   48:     }
   49:   }
   50:   execsql {
   51:     COMMIT;
   52:   }
   53: } {}
   54: for {set i 0} {$i < 500} {incr i} {
   55:   do_test tkt1667-2.$i.1 {
   56:     execsql {
   57:       DELETE FROM t1 WHERE a = $i;
   58:     }
   59:   } {}
   60:   integrity_check tkt1667-2.$i.2
   61: }
   62: 
   63: do_test tkt1667-3 {
   64:   execsql {
   65:     BEGIN;
   66:   }
   67:   for {set i 0} {$i < 500} {incr i} {
   68:     execsql {
   69:       INSERT INTO t1 VALUES($i, randstr(1000, 2000))
   70:     }
   71:   }
   72:   execsql {
   73:     COMMIT;
   74:   }
   75: } {}
   76: do_test tkt1667-4.1 {
   77:   execsql {
   78:     DELETE FROM t1;
   79:   }
   80: } {}
   81: integrity_check tkt1667-4.2
   82: 
   83: finish_test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>