| Index: third_party/sqlite/src/test/unixexcl.test
|
| diff --git a/third_party/sqlite/src/test/unixexcl.test b/third_party/sqlite/src/test/unixexcl.test
|
| index 057ae0af14fe3e56dba29f4b1d2467b092f6790a..d6762178dd2eb90f2c27e8bd9e683c969a1a6cc5 100644
|
| --- a/third_party/sqlite/src/test/unixexcl.test
|
| +++ b/third_party/sqlite/src/test/unixexcl.test
|
| @@ -80,4 +80,49 @@ do_multiclient_test tn {
|
| } {0 {hello world}}
|
| }
|
|
|
| +do_multiclient_test tn {
|
| + do_test unixexcl-3.$tn.1 {
|
| + code1 { db close; sqlite3 db file:test.db?psow=0 -vfs unix-excl -uri 1 }
|
| + code2 { db2 close; sqlite3 db2 file:test.db?psow=0 -vfs unix-excl -uri 1 }
|
| + sql1 {
|
| + PRAGMA auto_vacuum = 0;
|
| + PRAGMA journal_mode = WAL;
|
| + CREATE TABLE t1(a, b);
|
| + INSERT INTO t1 VALUES(1, 2);
|
| + }
|
| + } {wal}
|
| +
|
| + if {$tn==1} {
|
| + do_test unixexcl-3.$tn.1.multiproc {
|
| + csql2 { SELECT * FROM t1; }
|
| + } {1 {database is locked}}
|
| + } else {
|
| + do_test unixexcl-3.$tn.1.singleproc {
|
| + sql2 { SELECT * FROM t1; }
|
| + } {1 2}
|
| +
|
| + do_test unixexcl-3.$tn.2 {
|
| + sql2 {
|
| + BEGIN;
|
| + SELECT * FROM t1;
|
| + }
|
| + } {1 2}
|
| + do_test unixexcl-3.$tn.3 {
|
| + sql1 { PRAGMA wal_checkpoint; INSERT INTO t1 VALUES(3, 4); }
|
| + } {0 5 5}
|
| + do_test unixexcl-3.$tn.4 {
|
| + sql2 { SELECT * FROM t1; }
|
| + } {1 2}
|
| + do_test unixexcl-3.$tn.5 {
|
| + sql1 { SELECT * FROM t1; }
|
| + } {1 2 3 4}
|
| + do_test unixexcl-3.$tn.6 {
|
| + sql2 { COMMIT; SELECT * FROM t1; }
|
| + } {1 2 3 4}
|
| + do_test unixexcl-3.$tn.7 {
|
| + sql1 { PRAGMA wal_checkpoint; }
|
| + } {0 7 7}
|
| + }
|
| +}
|
| +
|
| finish_test
|
|
|