wasCSharpSQLite – Blame information for rev 7
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | # 2010 December 1 |
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 implements regression tests for SQLite library. The |
||
12 | # focus of this file is testing the operation of the library in |
||
13 | # "PRAGMA journal_mode=WAL" mode. |
||
14 | # |
||
15 | |||
16 | set testdir [file dirname $argv0] |
||
17 | source $testdir/tester.tcl |
||
18 | source $testdir/lock_common.tcl |
||
19 | source $testdir/wal_common.tcl |
||
20 | source $testdir/malloc_common.tcl |
||
21 | ifcapable !wal {finish_test ; return } |
||
22 | |||
23 | #------------------------------------------------------------------------- |
||
24 | # Changing to WAL mode in one connection forces the change in others. |
||
25 | # |
||
26 | db close |
||
27 | forcedelete test.db |
||
28 | |||
29 | set all_journal_modes {delete persist truncate memory off} |
||
30 | foreach jmode $all_journal_modes { |
||
31 | |||
32 | do_test wal6-1.0.$jmode { |
||
33 | sqlite3 db test.db |
||
34 | execsql "PRAGMA journal_mode = $jmode;" |
||
35 | } $jmode |
||
36 | |||
37 | do_test wal6-1.1.$jmode { |
||
38 | execsql { |
||
39 | CREATE TABLE t1(a INTEGER PRIMARY KEY, b); |
||
40 | INSERT INTO t1 VALUES(1,2); |
||
41 | SELECT * FROM t1; |
||
42 | } |
||
43 | } {1 2} |
||
44 | |||
45 | # Under Windows, you'll get an error trying to delete |
||
46 | # a file this is already opened. For now, make sure |
||
47 | # we get that error, then close the first connection |
||
48 | # so the other tests work. |
||
49 | if {$tcl_platform(platform)=="windows"} { |
||
50 | if {$jmode=="persist" || $jmode=="truncate"} { |
||
51 | do_test wal6-1.2.$jmode.win { |
||
52 | sqlite3 db2 test.db |
||
53 | catchsql { |
||
54 | PRAGMA journal_mode=WAL; |
||
55 | } db2 |
||
56 | } {1 {disk I/O error}} |
||
57 | db2 close |
||
58 | db close |
||
59 | } |
||
60 | } |
||
61 | |||
62 | do_test wal6-1.2.$jmode { |
||
63 | sqlite3 db2 test.db |
||
64 | execsql { |
||
65 | PRAGMA journal_mode=WAL; |
||
66 | INSERT INTO t1 VALUES(3,4); |
||
67 | SELECT * FROM t1 ORDER BY a; |
||
68 | } db2 |
||
69 | } {wal 1 2 3 4} |
||
70 | |||
71 | if {$tcl_platform(platform)=="windows"} { |
||
72 | if {$jmode=="persist" || $jmode=="truncate"} { |
||
73 | sqlite3 db test.db |
||
74 | } |
||
75 | } |
||
76 | |||
77 | do_test wal6-1.3.$jmode { |
||
78 | execsql { |
||
79 | SELECT * FROM t1 ORDER BY a; |
||
80 | } |
||
81 | } {1 2 3 4} |
||
82 | |||
83 | db close |
||
84 | db2 close |
||
85 | forcedelete test.db |
||
86 | |||
87 | } |
||
88 | |||
89 | finish_test |
||
90 |