| Index: third_party/sqlite/sqlite-src-3080704/test/nolock.test
|
| diff --git a/third_party/sqlite/sqlite-src-3080704/test/nolock.test b/third_party/sqlite/sqlite-src-3080704/test/nolock.test
|
| deleted file mode 100644
|
| index 331af08ad74e235a28ae8acb02ca81d32bc2f36c..0000000000000000000000000000000000000000
|
| --- a/third_party/sqlite/sqlite-src-3080704/test/nolock.test
|
| +++ /dev/null
|
| @@ -1,185 +0,0 @@
|
| -# 2014-05-07
|
| -#
|
| -# 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 nolock=1 and immutable=1 query
|
| -# parameters and the SQLITE_IOCAP_IMMUTABLE device characteristic.
|
| -#
|
| -
|
| -set testdir [file dirname $argv0]
|
| -source $testdir/tester.tcl
|
| -
|
| -unset -nocomplain tvfs_calls
|
| -proc tvfs_reset {} {
|
| - global tvfs_calls
|
| - array set tvfs_calls {xLock 0 xUnlock 0 xCheckReservedLock 0 xAccess 0}
|
| -}
|
| -proc tvfs_callback {op args} {
|
| - global tvfs_calls
|
| - incr tvfs_calls($op)
|
| - return SQLITE_OK
|
| -}
|
| -tvfs_reset
|
| -
|
| -testvfs tvfs
|
| -tvfs script tvfs_callback
|
| -tvfs filter {xLock xUnlock xCheckReservedLock xAccess}
|
| -
|
| -############################################################################
|
| -# Verify that the nolock=1 query parameter for URI filenames disables all
|
| -# calls to xLock and xUnlock for rollback databases.
|
| -#
|
| -do_test nolock-1.0 {
|
| - db close
|
| - forcedelete test.db
|
| - tvfs_reset
|
| - sqlite db test.db -vfs tvfs
|
| - db eval {CREATE TABLE t1(a,b,c); INSERT INTO t1 VALUES(1,2,3);}
|
| - list xLock $::tvfs_calls(xLock) xUnlock $::tvfs_calls(xUnlock) \
|
| - xCheckReservedLock $::tvfs_calls(xCheckReservedLock)
|
| -} {xLock 7 xUnlock 5 xCheckReservedLock 0}
|
| -
|
| -do_test nolock-1.1 {
|
| - db close
|
| - forcedelete test.db
|
| - tvfs_reset
|
| - sqlite db file:test.db?nolock=0 -vfs tvfs -uri 1
|
| - db eval {CREATE TABLE t1(a,b,c); INSERT INTO t1 VALUES(1,2,3);}
|
| - list xLock $::tvfs_calls(xLock) xUnlock $::tvfs_calls(xUnlock) \
|
| - xCheckReservedLock $::tvfs_calls(xCheckReservedLock)
|
| -} {xLock 7 xUnlock 5 xCheckReservedLock 0}
|
| -
|
| -do_test nolock-1.2 {
|
| - db close
|
| - forcedelete test.db
|
| - tvfs_reset
|
| - sqlite db file:test.db?nolock=1 -vfs tvfs -uri 1
|
| - db eval {CREATE TABLE t1(a,b,c); INSERT INTO t1 VALUES(1,2,3);}
|
| - list xLock $::tvfs_calls(xLock) xUnlock $::tvfs_calls(xUnlock) \
|
| - xCheckReservedLock $::tvfs_calls(xCheckReservedLock)
|
| -} {xLock 0 xUnlock 0 xCheckReservedLock 0}
|
| -
|
| -do_test nolock-1.3 {
|
| - db close
|
| - tvfs_reset
|
| - sqlite db file:test.db?nolock=0 -vfs tvfs -uri 1 -readonly 1
|
| - db eval {SELECT * FROM t1}
|
| - list xLock $::tvfs_calls(xLock) xUnlock $::tvfs_calls(xUnlock) \
|
| - xCheckReservedLock $::tvfs_calls(xCheckReservedLock)
|
| -} {xLock 2 xUnlock 2 xCheckReservedLock 0}
|
| -
|
| -do_test nolock-1.4 {
|
| - db close
|
| - tvfs_reset
|
| - sqlite db file:test.db?nolock=1 -vfs tvfs -uri 1 -readonly 1
|
| - db eval {SELECT * FROM t1}
|
| - list xLock $::tvfs_calls(xLock) xUnlock $::tvfs_calls(xUnlock) \
|
| - xCheckReservedLock $::tvfs_calls(xCheckReservedLock)
|
| -} {xLock 0 xUnlock 0 xCheckReservedLock 0}
|
| -
|
| -#############################################################################
|
| -# Verify that immutable=1 disables both locking and xAccess calls to the
|
| -# journal files.
|
| -#
|
| -do_test nolock-2.0 {
|
| - db close
|
| - forcedelete test.db
|
| - # begin by creating a test database
|
| - sqlite3 db test.db
|
| - db eval {
|
| - CREATE TABLE t1(a,b);
|
| - INSERT INTO t1 VALUES('hello','world');
|
| - CREATE TABLE t2(x,y);
|
| - INSERT INTO t2 VALUES(12345,67890);
|
| - SELECT * FROM t1, t2;
|
| - }
|
| -} {hello world 12345 67890}
|
| -do_test nolock-2.1 {
|
| - tvfs_reset
|
| - sqlite3 db2 test.db -vfs tvfs
|
| - db2 eval {SELECT * FROM t1, t2}
|
| -} {hello world 12345 67890}
|
| -do_test nolock-2.2 {
|
| - list xLock $::tvfs_calls(xLock) xUnlock $::tvfs_calls(xUnlock) \
|
| - xCheckReservedLock $::tvfs_calls(xCheckReservedLock) \
|
| - xAccess $::tvfs_calls(xAccess)
|
| -} {xLock 2 xUnlock 2 xCheckReservedLock 0 xAccess 4}
|
| -
|
| -
|
| -do_test nolock-2.11 {
|
| - db2 close
|
| - tvfs_reset
|
| - sqlite3 db2 file:test.db?immutable=0 -vfs tvfs -uri 1
|
| - db2 eval {SELECT * FROM t1, t2}
|
| -} {hello world 12345 67890}
|
| -do_test nolock-2.12 {
|
| - list xLock $::tvfs_calls(xLock) xUnlock $::tvfs_calls(xUnlock) \
|
| - xCheckReservedLock $::tvfs_calls(xCheckReservedLock) \
|
| - xAccess $::tvfs_calls(xAccess)
|
| -} {xLock 2 xUnlock 2 xCheckReservedLock 0 xAccess 4}
|
| -
|
| -
|
| -do_test nolock-2.21 {
|
| - db2 close
|
| - tvfs_reset
|
| - sqlite3 db2 file:test.db?immutable=1 -vfs tvfs -uri 1
|
| - db2 eval {SELECT * FROM t1, t2}
|
| -} {hello world 12345 67890}
|
| -do_test nolock-2.22 {
|
| - list xLock $::tvfs_calls(xLock) xUnlock $::tvfs_calls(xUnlock) \
|
| - xCheckReservedLock $::tvfs_calls(xCheckReservedLock) \
|
| - xAccess $::tvfs_calls(xAccess)
|
| -} {xLock 0 xUnlock 0 xCheckReservedLock 0 xAccess 0}
|
| -
|
| -do_test nolock-2.31 {
|
| - db2 close
|
| - tvfs_reset
|
| - sqlite3 db2 file:test.db?immutable=1 -vfs tvfs -uri 1 -readonly 1
|
| - db2 eval {SELECT * FROM t1, t2}
|
| -} {hello world 12345 67890}
|
| -do_test nolock-2.32 {
|
| - list xLock $::tvfs_calls(xLock) xUnlock $::tvfs_calls(xUnlock) \
|
| - xCheckReservedLock $::tvfs_calls(xCheckReservedLock) \
|
| - xAccess $::tvfs_calls(xAccess)
|
| -} {xLock 0 xUnlock 0 xCheckReservedLock 0 xAccess 0}
|
| -
|
| -############################################################################
|
| -# Verify that the SQLITE_IOCAP_IMMUTABLE flag works
|
| -#
|
| -do_test nolock-3.1 {
|
| - db2 close
|
| - tvfs devchar immutable
|
| - tvfs_reset
|
| - sqlite3 db2 test.db -vfs tvfs
|
| - db2 eval {SELECT * FROM t1, t2}
|
| -} {hello world 12345 67890}
|
| -do_test nolock-3.2 {
|
| - list xLock $::tvfs_calls(xLock) xUnlock $::tvfs_calls(xUnlock) \
|
| - xCheckReservedLock $::tvfs_calls(xCheckReservedLock) \
|
| - xAccess $::tvfs_calls(xAccess)
|
| -} {xLock 0 xUnlock 0 xCheckReservedLock 0 xAccess 0}
|
| -
|
| -do_test nolock-3.11 {
|
| - db2 close
|
| - tvfs_reset
|
| - sqlite3 db2 test.db -vfs tvfs -readonly 1
|
| - db2 eval {SELECT * FROM t1, t2}
|
| -} {hello world 12345 67890}
|
| -do_test nolock-3.12 {
|
| - list xLock $::tvfs_calls(xLock) xUnlock $::tvfs_calls(xUnlock) \
|
| - xCheckReservedLock $::tvfs_calls(xCheckReservedLock) \
|
| - xAccess $::tvfs_calls(xAccess)
|
| -} {xLock 0 xUnlock 0 xCheckReservedLock 0 xAccess 0}
|
| -
|
| -db2 close
|
| -db close
|
| -tvfs delete
|
| -finish_test
|
|
|