summaryrefslogtreecommitdiff
path: root/test/win32lock.test
diff options
context:
space:
mode:
authorHans-Christoph Steiner <hans@eds.org>2014-10-16 22:51:43 -0400
committerHans-Christoph Steiner <hans@eds.org>2014-10-16 22:51:43 -0400
commit9f67c0520ea0d5f11a190197cdf746c512db4ce4 (patch)
treec88a33f01f20a3d13a09594f114fffacebd0d1a4 /test/win32lock.test
parentee20336e9c78d2e3782c8d096b9ab4f6ca8ce95f (diff)
parent569c6676a6ddb0ff73821d7693b5e18ddef809b9 (diff)
Merge tag 'upstream/3.2.0'
Upstream version 3.2.0 # gpg: Signature made Thu 16 Oct 2014 10:51:39 PM EDT using RSA key ID 374BBE81 # gpg: Good signature from "Hans-Christoph Steiner <hans@guardianproject.info>" # gpg: aka "Hans-Christoph Steiner <hans@eds.org>" # gpg: aka "Hans-Christoph Steiner <hans@at.or.at>" # gpg: aka "[jpeg image of size 5408]"
Diffstat (limited to 'test/win32lock.test')
-rw-r--r--test/win32lock.test50
1 files changed, 48 insertions, 2 deletions
diff --git a/test/win32lock.test b/test/win32lock.test
index 7241720..cff1ed3 100644
--- a/test/win32lock.test
+++ b/test/win32lock.test
@@ -24,7 +24,7 @@ db close
sqlite3_shutdown
test_sqlite3_log xLog
proc xLog {error_code msg} {
- lappend ::log $msg
+ lappend ::log $msg
}
sqlite3 db test.db
db eval {PRAGMA mmap_size=0}
@@ -128,7 +128,53 @@ while {1} {
file_control_win32_av_retry db 10 25
sqlite3_test_control_pending_byte $old_pending_byte
db close
+forcedelete test.db
+
+sqlite3 db test.db
+sqlite3 db2 test.db
+
+do_test win32lock-3.0 {
+ db eval {
+ CREATE TABLE t1(x);
+ INSERT INTO t1 VALUES(1);
+ INSERT INTO t1 VALUES(2);
+ INSERT INTO t1 VALUES(3);
+ }
+} {}
+
+do_test win32lock-3.1 {
+ db eval {
+ BEGIN EXCLUSIVE;
+ INSERT INTO t1 VALUES(4);
+ }
+} {}
+
+do_test win32lock-3.2 {
+ catchsql {
+ BEGIN EXCLUSIVE;
+ INSERT INTO t1 VALUES(5);
+ COMMIT;
+ } db2
+} {1 {database is locked}}
+
+do_test win32lock-3.3 {
+ db eval {
+ COMMIT;
+ }
+} {}
+
+do_test win32lock-3.4 {
+ set handle [lindex [file_control_win32_set_handle db 0] end]
+ list [catchsql {
+ BEGIN EXCLUSIVE;
+ INSERT INTO t1 VALUES(6);
+ COMMIT;
+ }] [file_control_win32_set_handle db $handle] [sqlite3_extended_errcode db]
+} {{1 {disk I/O error}} {0 0} SQLITE_IOERR_LOCK}
+
+db2 close
+db close
sqlite3_shutdown
-test_sqlite3_log
+test_sqlite3_log
sqlite3_initialize
finish_test