OLD | NEW |
| (Empty) |
1 # 2008 November 3 | |
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 # | |
12 # This file implements regression tests for SQLite library. The | |
13 # focus of this script is the response of COMMIT and ROLLBACK when | |
14 # statements are still pending. | |
15 # | |
16 # $Id: trans3.test,v 1.2 2008/11/05 16:37:35 drh Exp $ | |
17 # | |
18 set testdir [file dirname $argv0] | |
19 source $testdir/tester.tcl | |
20 unset -nocomplain ecode | |
21 | |
22 do_test trans3-1.1 { | |
23 db eval { | |
24 CREATE TABLE t1(x); | |
25 INSERT INTO t1 VALUES(1); | |
26 INSERT INTO t1 VALUES(2); | |
27 INSERT INTO t1 VALUES(3); | |
28 SELECT * FROM t1; | |
29 } | |
30 } {1 2 3} | |
31 do_test trans3-1.2 { | |
32 db eval BEGIN | |
33 db eval {INSERT INTO t1 VALUES(4);} | |
34 set ::ecode {} | |
35 set x [catch { | |
36 db eval {SELECT * FROM t1 LIMIT 1} { | |
37 if {[catch {db eval COMMIT} errmsg]} { | |
38 set ::ecode [sqlite3_extended_errcode db] | |
39 error $errmsg | |
40 } | |
41 } | |
42 } errmsg] | |
43 lappend x $errmsg | |
44 } {0 {}} | |
45 do_test trans3-1.3 { | |
46 set ::ecode | |
47 } {} | |
48 do_test trans3-1.3.1 { | |
49 sqlite3_get_autocommit db | |
50 } 1 | |
51 do_test trans3-1.4 { | |
52 db eval {SELECT * FROM t1} | |
53 } {1 2 3 4} | |
54 do_test trans3-1.5 { | |
55 db eval {BEGIN; CREATE TABLE xyzzy(abc);} | |
56 db eval {INSERT INTO t1 VALUES(5);} | |
57 set ::ecode {} | |
58 set x [catch { | |
59 db eval {SELECT * FROM t1} { | |
60 if {[catch {db eval ROLLBACK} errmsg]} { | |
61 set ::ecode [sqlite3_extended_errcode db] | |
62 error $errmsg | |
63 } | |
64 } | |
65 } errmsg] | |
66 lappend x $errmsg | |
67 } {1 {abort due to ROLLBACK}} | |
68 do_test trans3-1.6 { | |
69 set ::ecode | |
70 } {} | |
71 do_test trans3-1.7 { | |
72 db eval {SELECT * FROM t1} | |
73 } {1 2 3 4} | |
74 unset -nocomplain ecode | |
75 | |
76 finish_test | |
OLD | NEW |