1# 2005 july 8 2# 3# The author disclaims copyright to this source code. In place of 4# a legal notice, here is a blessing: 5# 6# May you do good and not evil. 7# May you find forgiveness for yourself and forgive others. 8# May you share freely, never taking more than you give. 9# 10#*********************************************************************** 11# This file test the busy handler 12# 13# $Id: busy.test,v 1.3 2008/03/15 02:09:22 drh Exp $ 14 15 16set testdir [file dirname $argv0] 17source $testdir/tester.tcl 18 19do_test busy-1.1 { 20 sqlite3 db2 test.db 21 execsql { 22 CREATE TABLE t1(x); 23 INSERT INTO t1 VALUES(1); 24 SELECT * FROM t1 25 } 26} 1 27proc busy x { 28 lappend ::busyargs $x 29 if {$x>2} {return 1} 30 return 0 31} 32set busyargs {} 33do_test busy-1.2 { 34 db busy busy 35 db2 eval {BEGIN EXCLUSIVE} 36 catchsql {BEGIN IMMEDIATE} 37} {1 {database is locked}} 38do_test busy-1.3 { 39 set busyargs 40} {0 1 2 3} 41do_test busy-1.4 { 42 set busyargs {} 43 catchsql {BEGIN IMMEDIATE} 44 set busyargs 45} {0 1 2 3} 46 47do_test busy-2.1 { 48 db2 eval {COMMIT} 49 db eval {BEGIN; INSERT INTO t1 VALUES(5)} 50 db2 eval {BEGIN; SELECT * FROM t1} 51 set busyargs {} 52 catchsql COMMIT 53} {1 {database is locked}} 54do_test busy-2.2 { 55 set busyargs 56} {0 1 2 3} 57 58 59db2 close 60 61finish_test 62