Cover an extra case in sqlite3PagerMovepage(). (CVS 3796)

FossilOrigin-Name: 7313688bd03141381067c36800edf1621a2ea05e
This commit is contained in:
danielk1977
2007-04-02 14:19:16 +00:00
parent cd1aa9000f
commit aeba431fa9
4 changed files with 62 additions and 10 deletions

View File

@@ -1,5 +1,5 @@
C Fix\sfor\s#2281.\sThis\swas\sa\sproblem\swith\sthe\stest-case\sonly.\s(CVS\s3795)
D 2007-04-02T12:29:01
C Cover\san\sextra\scase\sin\ssqlite3PagerMovepage().\s(CVS\s3796)
D 2007-04-02T14:19:16
F Makefile.in 2f2c3bf69faf0ae7b8e8af4f94f1986849034530
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -134,7 +134,7 @@ F src/vtab.c 7fbda947e28cbe7adb3ba752a76ca9ef29936750
F src/where.c 25e0dbb96c6980d11cc756c2b4abdfda80cd67a5
F tclinstaller.tcl 046e3624671962dc50f0481d7c25b38ef803eb42
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
F test/all.test 60267b055e82de4fb8b841eabb014bc2f836a4eb
F test/all.test 6a03095322e93427a3677ce5daaa20f45640d1f0
F test/alter.test a2cc30e844cb3b5d203416962f56f78fc11b1978
F test/alter2.test 33fb74e0470455ed6903f8d6e63256c7402cebb1
F test/alter3.test a6eec8f454be9b6ce73d8d7dc711453675a10ce7
@@ -149,7 +149,7 @@ F test/attachmalloc.test 03eeddd06e685ddbe975efd51824e4941847e5f4
F test/auth.test 66923137cf78475f5671b5e6e6274935e055aea0
F test/auth2.test 8da06f0ffcfd98154dda78e0f3b35a6503c27b64
F test/autoinc.test 60005a676e3e4e17dfa9dbd08aa0b76587ff97e3
F test/autovacuum.test 5f5d843ff856b7dcfdf3f36b7e1acb04895047ce
F test/autovacuum.test 05f528c3bf98d086df7d86fddeb9d85037254913
F test/autovacuum_crash.test 05a63b8805b20cfba7ace82856ce4ccdda075a31
F test/autovacuum_ioerr.test c46a76869cb6eddbbb40b419b2b6c4c001766b1f
F test/autovacuum_ioerr2.test 2f8a3fb31f833fd0ca86ad4ad98913c73e807572
@@ -448,7 +448,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
P 84077fa1602756339a262bc4ab51b6b487edc637
R b4a7c87e67bebc1d353d9c4afaced009
P c036db6251ca4671fc3388a4f37955c18adeca1d
R b312892bc4400eb87f0210f0a4ec2915
U danielk1977
Z 56dcad87d661517797c12a6081958287
Z 42486ade40db0dea35717849aebedc28

View File

@@ -1 +1 @@
c036db6251ca4671fc3388a4f37955c18adeca1d
7313688bd03141381067c36800edf1621a2ea05e

View File

@@ -10,7 +10,7 @@
#***********************************************************************
# This file runs all tests.
#
# $Id: all.test,v 1.38 2007/03/27 12:04:06 drh Exp $
# $Id: all.test,v 1.39 2007/04/02 14:19:16 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@@ -121,6 +121,7 @@ if {$LeakList!=""} {
#
if {$::tcl_platform(platform)=="unix"} {
source $testdir/crash.test
source $testdir/crash2.test
ifcapable !default_autovacuum {
source $testdir/autovacuum_crash.test
}

View File

@@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The
# focus of this file is testing the SELECT statement.
#
# $Id: autovacuum.test,v 1.24 2006/08/12 12:33:15 drh Exp $
# $Id: autovacuum.test,v 1.25 2007/04/02 14:19:16 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@@ -579,4 +579,55 @@ do_test autovacuum-6.1 {
}
#---------------------------------------------------------------------
# Test cases autovacuum-7.X test the case where a page must be moved
# and the destination location collides with at least one other
# entry in the page hash-table (internal to the pager.c module.
#
do_test autovacuum-7.1 {
db close
file delete -force test.db
file delete -force test.db-journal
sqlite3 db test.db
execsql {
PRAGMA auto_vacuum=1;
CREATE TABLE t1(a, b, PRIMARY KEY(a, b));
INSERT INTO t1 VALUES(randstr(400,400),randstr(400,400));
INSERT INTO t1 SELECT randstr(400,400), randstr(400,400) FROM t1; -- 2
INSERT INTO t1 SELECT randstr(400,400), randstr(400,400) FROM t1; -- 4
INSERT INTO t1 SELECT randstr(400,400), randstr(400,400) FROM t1; -- 8
INSERT INTO t1 SELECT randstr(400,400), randstr(400,400) FROM t1; -- 16
INSERT INTO t1 SELECT randstr(400,400), randstr(400,400) FROM t1; -- 32
}
expr {[file size test.db] / 1024}
} {73}
do_test autovacuum-7.2 {
execsql {
CREATE TABLE t2(a, b, PRIMARY KEY(a, b));
INSERT INTO t2 SELECT randstr(400,400), randstr(400,400) FROM t1; -- 2
CREATE TABLE t3(a, b, PRIMARY KEY(a, b));
INSERT INTO t3 SELECT randstr(400,400), randstr(400,400) FROM t1; -- 2
CREATE TABLE t4(a, b, PRIMARY KEY(a, b));
INSERT INTO t4 SELECT randstr(400,400), randstr(400,400) FROM t1; -- 2
CREATE TABLE t5(a, b, PRIMARY KEY(a, b));
INSERT INTO t5 SELECT randstr(400,400), randstr(400,400) FROM t1; -- 2
}
expr {[file size test.db] / 1024}
} {354}
do_test autovacuum-7.3 {
db close
sqlite3 db test.db
execsql {
BEGIN;
DELETE FROM t4;
COMMIT;
SELECT count(*) FROM t1;
}
expr {[file size test.db] / 1024}
} {286}
finish_test