1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- # 2010 August 2
- #
- # 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 file is testing the operation of the library in
- # "PRAGMA journal_mode=WAL" mode with shared-cache turned on.
- #
- set testdir [file dirname $argv0]
- source $testdir/tester.tcl
- ifcapable !wal {finish_test ; return }
- db close
- set ::enable_shared_cache [sqlite3_enable_shared_cache 1]
- sqlite3 db test.db
- sqlite3 db2 test.db
- do_test walshared-1.0 {
- execsql {
- PRAGMA cache_size = 10;
- PRAGMA journal_mode = WAL;
- CREATE TABLE t1(a PRIMARY KEY, b UNIQUE);
- INSERT INTO t1 VALUES(randomblob(100), randomblob(200));
- }
- } {wal}
- do_test walshared-1.1 {
- execsql {
- BEGIN;
- INSERT INTO t1 VALUES(randomblob(100), randomblob(200));
- INSERT INTO t1 SELECT randomblob(100), randomblob(200) FROM t1;
- INSERT INTO t1 SELECT randomblob(100), randomblob(200) FROM t1;
- INSERT INTO t1 SELECT randomblob(100), randomblob(200) FROM t1;
- }
- } {}
- do_test walshared-1.2 {
- catchsql { PRAGMA wal_checkpoint }
- } {1 {database table is locked}}
- do_test walshared-1.3 {
- catchsql { PRAGMA wal_checkpoint } db2
- } {1 {database table is locked}}
- do_test walshared-1.4 {
- execsql { COMMIT }
- execsql { PRAGMA integrity_check } db2
- } {ok}
- sqlite3_enable_shared_cache $::enable_shared_cache
- finish_test
|