| Index: third_party/sqlite/sqlite-src-3080704/test/incrvacuum3.test
|
| diff --git a/third_party/sqlite/sqlite-src-3080704/test/incrvacuum3.test b/third_party/sqlite/sqlite-src-3080704/test/incrvacuum3.test
|
| deleted file mode 100644
|
| index e901bfe1f59bd26ba083551eea08dde5f98fdd5d..0000000000000000000000000000000000000000
|
| --- a/third_party/sqlite/sqlite-src-3080704/test/incrvacuum3.test
|
| +++ /dev/null
|
| @@ -1,153 +0,0 @@
|
| -# 2013 Feb 25
|
| -#
|
| -# 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 the SQLite library, focusing
|
| -# on the incremental vacuum feature.
|
| -#
|
| -# The tests in this file were added at the same time as optimizations
|
| -# were made to:
|
| -#
|
| -# * Truncate the database after a rollback mode commit, and
|
| -#
|
| -# * Avoid moving pages to locations from which they may need to be moved
|
| -# a second time if an incremental-vacuum proccess is allowed to vacuum
|
| -# the entire database.
|
| -#
|
| -
|
| -set testdir [file dirname $argv0]
|
| -source $testdir/tester.tcl
|
| -set testprefix incrvacuum3
|
| -
|
| -# If this build of the library does not support auto-vacuum, omit this
|
| -# whole file.
|
| -ifcapable {!autovacuum || !pragma} {
|
| - finish_test
|
| - return
|
| -}
|
| -
|
| -proc check_on_disk {} {
|
| -
|
| - # Copy the wal and journal files for database "test.db" to "test2.db".
|
| - forcedelete test2.db test2.db-journal test2.db-wal
|
| - if {[file exists test.db-journal]} {
|
| - forcecopy test.db-journal test2.db-journal
|
| - }
|
| - if {[file exists test.db-wal]} {
|
| - forcecopy test.db-wal test2.db-wal
|
| - }
|
| -
|
| - # Now copy the database file itself. Do this using open/read/puts
|
| - # instead of the [file copy] command in order to avoid attempting
|
| - # to read the 512 bytes begining at offset $sqlite_pending_byte.
|
| - #
|
| - set sz [file size test.db]
|
| - set fd [open test.db]
|
| - set fd2 [open test2.db w]
|
| - fconfigure $fd -encoding binary -translation binary
|
| - fconfigure $fd2 -encoding binary -translation binary
|
| - if {$sz>$::sqlite_pending_byte} {
|
| - puts -nonewline $fd2 [read $fd $::sqlite_pending_byte]
|
| - seek $fd [expr $::sqlite_pending_byte+512]
|
| - seek $fd2 [expr $::sqlite_pending_byte+512]
|
| - }
|
| - puts -nonewline $fd2 [read $fd]
|
| - close $fd2
|
| - close $fd
|
| -
|
| - # Open "test2.db" and check it is Ok.
|
| - sqlite3 dbcheck test2.db
|
| - set ret [dbcheck eval { PRAGMA integrity_check }]
|
| - dbcheck close
|
| - set ret
|
| -}
|
| -
|
| -# Run these tests once in rollback journal mode, and once in wal mode.
|
| -#
|
| -foreach {T jrnl_mode} {
|
| - 1 delete
|
| - 2 wal
|
| -} {
|
| - catch { db close }
|
| - forcedelete test.db test.db-journal test.db-wal
|
| - sqlite3 db test.db
|
| - db eval {
|
| - PRAGMA cache_size = 5;
|
| - PRAGMA page_size = 1024;
|
| - PRAGMA auto_vacuum = 2;
|
| - }
|
| - db eval "PRAGMA journal_mode = $jrnl_mode"
|
| -
|
| - foreach {tn sql} {
|
| - 1 {
|
| - CREATE TABLE t1(x UNIQUE);
|
| - INSERT INTO t1 VALUES(randomblob(400));
|
| - INSERT INTO t1 VALUES(randomblob(400));
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 4
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 8
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 16
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 32
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 64
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 128
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 256
|
| - }
|
| -
|
| - 2 {
|
| - DELETE FROM t1 WHERE rowid%8;
|
| - }
|
| -
|
| - 3 {
|
| - BEGIN;
|
| - PRAGMA incremental_vacuum = 100;
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 64
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 128
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 256
|
| - ROLLBACK;
|
| - }
|
| -
|
| - 4 {
|
| - BEGIN;
|
| - SAVEPOINT one;
|
| - PRAGMA incremental_vacuum = 100;
|
| - SAVEPOINT two;
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 64
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 128
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 256
|
| - }
|
| -
|
| - 5 { ROLLBACK to two }
|
| -
|
| - 6 { ROLLBACK to one }
|
| -
|
| - 7 {
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 64
|
| - PRAGMA incremental_vacuum = 1000;
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 128
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 256
|
| - ROLLBACK;
|
| - }
|
| -
|
| - 8 {
|
| - BEGIN;
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 64
|
| - PRAGMA incremental_vacuum = 1000;
|
| - INSERT INTO t1 SELECT randomblob(400) FROM t1; -- 128
|
| - COMMIT;
|
| - }
|
| - } {
|
| - do_execsql_test $T.1.$tn.1 $sql
|
| - do_execsql_test $T.1.$tn.2 {PRAGMA integrity_check} ok
|
| - do_test $T.1.$tn.3 { check_on_disk } ok
|
| - }
|
| -
|
| - do_execsql_test $T.1.x.1 { PRAGMA freelist_count } 0
|
| - do_execsql_test $T.1.x.2 { SELECT count(*) FROM t1 } 128
|
| -}
|
| -
|
| -finish_test
|
|
|