blob: 585f764547717a4f1b1b70240844b28b20f990d2 [file] [log] [blame]
drha4afb652005-07-09 02:16:02 +00001# 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#
drh175cd712008-03-15 02:09:21 +000013# $Id: busy.test,v 1.3 2008/03/15 02:09:22 drh Exp $
drha4afb652005-07-09 02:16:02 +000014
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}
drhe3000ae2005-09-17 18:02:36 +000032set busyargs {}
drha4afb652005-07-09 02:16:02 +000033do_test busy-1.2 {
34 db busy busy
drh175cd712008-03-15 02:09:21 +000035 db2 eval {BEGIN EXCLUSIVE}
36 catchsql {BEGIN IMMEDIATE}
drha4afb652005-07-09 02:16:02 +000037} {1 {database is locked}}
38do_test busy-1.3 {
39 set busyargs
40} {0 1 2 3}
drh175cd712008-03-15 02:09:21 +000041do_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
drha4afb652005-07-09 02:16:02 +000058
59db2 close
60
61finish_test