| Index: third_party/sqlite/test/lock3.test
|
| ===================================================================
|
| --- third_party/sqlite/test/lock3.test (revision 56608)
|
| +++ third_party/sqlite/test/lock3.test (working copy)
|
| @@ -1,79 +0,0 @@
|
| -# 2001 September 15
|
| -#
|
| -# 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 database locks and the operation of the
|
| -# DEFERRED, IMMEDIATE, and EXCLUSIVE keywords as modifiers to the
|
| -# BEGIN command.
|
| -#
|
| -# $Id: lock3.test,v 1.4 2009/03/28 15:04:24 drh Exp $
|
| -
|
| -
|
| -set testdir [file dirname $argv0]
|
| -source $testdir/tester.tcl
|
| -
|
| -# Establish two connections to the same database. Put some
|
| -# sample data into the database.
|
| -#
|
| -do_test lock3-1.1 {
|
| - file mkdir tempdir/t1/t2/t3
|
| - sqlite3 db2 ./tempdir/t1//t2/./t3//./../..//./../../tempdir/..//test.db//
|
| - execsql {
|
| - CREATE TABLE t1(a);
|
| - INSERT INTO t1 VALUES(1);
|
| - }
|
| - execsql {
|
| - SELECT * FROM t1
|
| - } db2
|
| -} 1
|
| -
|
| -# Get a deferred lock on the database using one connection. The
|
| -# other connection should still be able to write.
|
| -#
|
| -do_test lock3-2.1 {
|
| - execsql {BEGIN DEFERRED TRANSACTION}
|
| - execsql {INSERT INTO t1 VALUES(2)} db2
|
| - execsql {END TRANSACTION}
|
| - execsql {SELECT * FROM t1}
|
| -} {1 2}
|
| -
|
| -# Get an immediate lock on the database using one connection. The
|
| -# other connection should be able to read the database but not write
|
| -# it.
|
| -#
|
| -do_test lock3-3.1 {
|
| - execsql {BEGIN IMMEDIATE TRANSACTION}
|
| - catchsql {SELECT * FROM t1} db2
|
| -} {0 {1 2}}
|
| -do_test lock3-3.2 {
|
| - catchsql {INSERT INTO t1 VALUES(3)} db2
|
| -} {1 {database is locked}}
|
| -do_test lock3-3.3 {
|
| - execsql {END TRANSACTION}
|
| -} {}
|
| -
|
| -
|
| -# Get an exclusive lock on the database using one connection. The
|
| -# other connection should be unable to read or write the database.
|
| -#
|
| -do_test lock3-4.1 {
|
| - execsql {BEGIN EXCLUSIVE TRANSACTION}
|
| - catchsql {SELECT * FROM t1} db2
|
| -} {1 {database is locked}}
|
| -do_test lock3-4.2 {
|
| - catchsql {INSERT INTO t1 VALUES(3)} db2
|
| -} {1 {database is locked}}
|
| -do_test lock3-4.3 {
|
| - execsql {END TRANSACTION}
|
| -} {}
|
| -
|
| -catch {db2 close}
|
| -
|
| -finish_test
|
|
|