1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-30 19:03:16 +03:00

Tests and bug fixes on the new transaction method in the TCL interface. (CVS 2574)

FossilOrigin-Name: 68dd0ed5e312ecd5e98ee0fa1c21b70ff330f711
This commit is contained in:
drh
2005-08-02 17:15:14 +00:00
parent 09d0debf3b
commit b5555e7e34
4 changed files with 97 additions and 11 deletions

View File

@ -15,7 +15,7 @@
# interface is pretty well tested. This file contains some addition
# tests for fringe issues that the main test suite does not cover.
#
# $Id: tclsqlite.test,v 1.42 2005/08/02 12:21:10 drh Exp $
# $Id: tclsqlite.test,v 1.43 2005/08/02 17:15:16 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -348,5 +348,91 @@ do_test tcl-9.11 {
execsql {SELECT r1(100)}
} {5050}
# Tests for the new transaction method
#
do_test tcl-10.1 {
db transaction {}
} {}
do_test tcl-10.2 {
db transaction deferred {}
} {}
do_test tcl-10.3 {
db transaction immediate {}
} {}
do_test tcl-10.4 {
db transaction exclusive {}
} {}
do_test tcl-10.5 {
set rc [catch {db transaction xyzzy {}} msg]
lappend rc $msg
} {1 {bad transaction type "xyzzy": must be deferred, exclusive, or immediate}}
do_test tcl-10.6 {
set rc [catch {db transaction {error test-error}} msg]
lappend rc $msg
} {1 test-error}
do_test tcl-10.7 {
db transaction {
db eval {CREATE TABLE t4(x)}
db transaction {
db eval {INSERT INTO t4 VALUES(1)}
}
}
db eval {SELECT * FROM t4}
} 1
do_test tcl-10.8 {
catch {
db transaction {
db eval {INSERT INTO t4 VALUES(2)}
db eval {INSERT INTO t4 VALUES(3)}
db eval {INSERT INTO t4 VALUES(4)}
error test-error
}
}
db eval {SELECT * FROM t4}
} 1
do_test tcl-10.9 {
db transaction {
db eval {INSERT INTO t4 VALUES(2)}
catch {
db transaction {
db eval {INSERT INTO t4 VALUES(3)}
db eval {INSERT INTO t4 VALUES(4)}
error test-error
}
}
}
db eval {SELECT * FROM t4}
} {1 2 3 4}
do_test tcl-10.10 {
for {set i 0} {$i<1} {incr i} {
db transaction {
db eval {INSERT INTO t4 VALUES(5)}
continue
}
}
db eval {SELECT * FROM t4}
} {1 2 3 4 5}
do_test tcl-10.11 {
for {set i 0} {$i<10} {incr i} {
db transaction {
db eval {INSERT INTO t4 VALUES(6)}
break
}
}
db eval {SELECT * FROM t4}
} {1 2 3 4 5 6}
do_test tcl-10.12 {
set rc [catch {
for {set i 0} {$i<10} {incr i} {
db transaction {
db eval {INSERT INTO t4 VALUES(7)}
return
}
}
}]
} {2}
do_test tcl-10.13 {
db eval {SELECT * FROM t4}
} {1 2 3 4 5 6 7}
finish_test