OLD | NEW |
1 # 2011 March 30 | 1 # 2011 March 30 |
2 # | 2 # |
3 # The author disclaims copyright to this source code. In place of | 3 # The author disclaims copyright to this source code. In place of |
4 # a legal notice, here is a blessing: | 4 # a legal notice, here is a blessing: |
5 # | 5 # |
6 # May you do good and not evil. | 6 # May you do good and not evil. |
7 # May you find forgiveness for yourself and forgive others. | 7 # May you find forgiveness for yourself and forgive others. |
8 # May you share freely, never taking more than you give. | 8 # May you share freely, never taking more than you give. |
9 # | 9 # |
10 #*********************************************************************** | 10 #*********************************************************************** |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 db close | 73 db close |
74 sqlite3 db test.db -readonly yes -vfs unix-excl | 74 sqlite3 db test.db -readonly yes -vfs unix-excl |
75 db eval { SELECT * FROM t1 } | 75 db eval { SELECT * FROM t1 } |
76 } | 76 } |
77 } {hello world} | 77 } {hello world} |
78 do_test unixexcl-2.$tn.4 { | 78 do_test unixexcl-2.$tn.4 { |
79 csql2 { SELECT * FROM t1 } | 79 csql2 { SELECT * FROM t1 } |
80 } {0 {hello world}} | 80 } {0 {hello world}} |
81 } | 81 } |
82 | 82 |
| 83 do_multiclient_test tn { |
| 84 do_test unixexcl-3.$tn.1 { |
| 85 code1 { db close; sqlite3 db file:test.db?psow=0 -vfs unix-excl -uri 1 } |
| 86 code2 { db2 close; sqlite3 db2 file:test.db?psow=0 -vfs unix-excl -uri 1 } |
| 87 sql1 { |
| 88 PRAGMA auto_vacuum = 0; |
| 89 PRAGMA journal_mode = WAL; |
| 90 CREATE TABLE t1(a, b); |
| 91 INSERT INTO t1 VALUES(1, 2); |
| 92 } |
| 93 } {wal} |
| 94 |
| 95 if {$tn==1} { |
| 96 do_test unixexcl-3.$tn.1.multiproc { |
| 97 csql2 { SELECT * FROM t1; } |
| 98 } {1 {database is locked}} |
| 99 } else { |
| 100 do_test unixexcl-3.$tn.1.singleproc { |
| 101 sql2 { SELECT * FROM t1; } |
| 102 } {1 2} |
| 103 |
| 104 do_test unixexcl-3.$tn.2 { |
| 105 sql2 { |
| 106 BEGIN; |
| 107 SELECT * FROM t1; |
| 108 } |
| 109 } {1 2} |
| 110 do_test unixexcl-3.$tn.3 { |
| 111 sql1 { PRAGMA wal_checkpoint; INSERT INTO t1 VALUES(3, 4); } |
| 112 } {0 5 5} |
| 113 do_test unixexcl-3.$tn.4 { |
| 114 sql2 { SELECT * FROM t1; } |
| 115 } {1 2} |
| 116 do_test unixexcl-3.$tn.5 { |
| 117 sql1 { SELECT * FROM t1; } |
| 118 } {1 2 3 4} |
| 119 do_test unixexcl-3.$tn.6 { |
| 120 sql2 { COMMIT; SELECT * FROM t1; } |
| 121 } {1 2 3 4} |
| 122 do_test unixexcl-3.$tn.7 { |
| 123 sql1 { PRAGMA wal_checkpoint; } |
| 124 } {0 7 7} |
| 125 } |
| 126 } |
| 127 |
83 finish_test | 128 finish_test |
OLD | NEW |