wasCSharpSQLite – Blame information for rev 1

Subversion Repositories:
Rev:
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