diff options
| author | bernard <[email protected]> | 2017-11-02 13:50:42 +0800 |
|---|---|---|
| committer | bernard <[email protected]> | 2017-11-02 13:50:42 +0800 |
| commit | b2057f506a09e2adef81fc77efd697d16ae14bec (patch) | |
| tree | 3affefabfe376a0ec1b3ac4a5eef957c1dd58dc8 /components/external/SQLite-3.8.1/test/lock4.test | |
| parent | 23582c8129228b4961ad35319cfd2d270039345f (diff) | |
[External] Remove external from RT-Thread
Diffstat (limited to 'components/external/SQLite-3.8.1/test/lock4.test')
| -rw-r--r-- | components/external/SQLite-3.8.1/test/lock4.test | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/components/external/SQLite-3.8.1/test/lock4.test b/components/external/SQLite-3.8.1/test/lock4.test deleted file mode 100644 index b0b1c74fbe..0000000000 --- a/components/external/SQLite-3.8.1/test/lock4.test +++ /dev/null @@ -1,118 +0,0 @@ -# 2007 April 6 -# -# 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. -# -# $Id: lock4.test,v 1.10 2009/05/06 00:52:41 drh Exp $ - - -set testdir [file dirname $argv0] -source $testdir/tester.tcl - -do_not_use_codec - -# Initialize the test.db database so that it is non-empty -# -do_test lock4-1.1 { - db eval { - PRAGMA auto_vacuum=OFF; - CREATE TABLE t1(x); - } - forcedelete test2.db test2.db-journal - sqlite3 db2 test2.db - db2 eval { - PRAGMA auto_vacuum=OFF; - CREATE TABLE t2(x) - } - db2 close - list [file size test.db] [file size test2.db] -} {2048 2048} - -# Create a script to drive a separate process that will -# -# 1. Create a second database test2.db -# 2. Get an exclusive lock on test2.db -# 3. Add an entry to test.db in table t1, waiting as necessary. -# 4. Commit the change to test2.db. -# -# Meanwhile, this process will: -# -# A. Get an exclusive lock on test.db -# B. Attempt to read from test2.db but get an SQLITE_BUSY error. -# C. Commit the changes to test.db thus alloing the other process -# to continue. -# -do_test lock4-1.2 { - - # Create a script for the second process to run. - # - set out [open test2-script.tcl w] - puts $out "sqlite3_test_control_pending_byte [set sqlite_pending_byte]" - puts $out { - sqlite3 db2 test2.db - db2 eval { - BEGIN; - INSERT INTO t2 VALUES(2); - } - sqlite3 db test.db - db timeout 1000000 - db eval { - INSERT INTO t1 VALUES(2); - } - db close - db2 eval COMMIT - exit - } - close $out - - # Begin a transaction on test.db. - db eval { - BEGIN EXCLUSIVE; - INSERT INTO t1 VALUES(1); - } - - # Kick off the second process. - exec [info nameofexec] ./test2-script.tcl & - - # Wait until the second process has started its transaction on test2.db. - while {![file exists test2.db-journal]} { - after 10 - } - - # Try to write to test2.db. We are locked out. - sqlite3 db2 test2.db - catchsql { - INSERT INTO t2 VALUES(1) - } db2 -} {1 {database is locked}} -do_test lock4-1.3 { - db eval { - COMMIT; - } - while {[file exists test2.db-journal]} { - after 10 - } - # The other process has committed its transaction on test2.db by - # deleting the journal file. But it might retain the lock for a - # fraction longer - # - after 25 - db2 eval { - SELECT * FROM t2 - } -} {2} - - -do_test lock4-999.1 { - rename db2 {} -} {} - -finish_test |
