123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- # 2001 November 22
- #
- # The author disclaims copyright to this source code. In place of
- # a legal notice, here is a blessing:
- #
- # May you do good and not evil.
- # May you find forgiveness for yourself and forgive others.
- # May you share freely, never taking more than you give.
- #
- #***********************************************************************
- # This file implements regression tests for SQLite library. The
- # focus of this script is btree database backend
- #
- # In particular, this file tests a small part of the Delete logic
- # for the BTree backend. When a row is deleted from a table, the
- # cursor is suppose to be left pointing at either the previous or
- # next entry in that table. If the cursor is left pointing at the
- # next entry, then the next Next operation is ignored. So the
- # sequence of operations (Delete, Next) should always leave the
- # cursor pointing at the first entry past the one that was deleted.
- # This test is designed to verify that behavior.
- #
- # $Id: btree3.test,v 1.1 2001/11/23 00:24:12 drh Exp $
- set testdir [file dirname $argv0]
- source $testdir/tester.tcl
- if {[info commands btree_open]!=""} {
- # Open a test database.
- #
- file delete -force test1.bt
- file delete -force test1.bt-journal
- set b1 [btree_open test1.bt]
- btree_begin_transaction $::b1
- # Insert a few one records
- #
- set data {abcdefghijklmnopqrstuvwxyz0123456789}
- append data $data
- append data $data
- append data $data
- append data $data
- for {set k 2} {$k<=10} {incr k} {
- for {set j 1} {$j<=$k} {incr j} {
- set jkey [format %02d $j]
- btree_clear_table $::b1 2
- set ::c1 [btree_cursor $::b1 2 1]
- for {set i 1} {$i<=$k+1} {incr i} {
- set key [format %02d $i]
- do_test btree3-$k.$j.1.$i {
- btree_insert $::c1 $::key $::data
- } {}
- # btree_tree_dump $::b1 2
- }
- do_test btree3-$k.$j.2 {
- btree_move_to $::c1 $::jkey
- btree_key $::c1
- } $::jkey
- do_test btree3-$k.$j.3 {
- btree_delete $::c1
- } {}
- do_test btree3-$k.$j.4 {
- btree_next $::c1
- btree_key $::c1
- } [format %02d [expr $j+1]]
- btree_close_cursor $::c1
- }
- }
- btree_rollback $::b1
- btree_pager_ref_dump $::b1
- btree_close $::b1
- } ;# end if( not mem: and has pager_open command );
- finish_test
|