Index: third_party/sqlite/src/test/walfault.test |
diff --git a/third_party/sqlite/src/test/walfault.test b/third_party/sqlite/src/test/walfault.test |
index 3a90f9c693d1b1c95f9bf5c091cea1391a97c916..4e7064d53b1a32c87978e02522b4c98e63a17eae 100644 |
--- a/third_party/sqlite/src/test/walfault.test |
+++ b/third_party/sqlite/src/test/walfault.test |
@@ -123,7 +123,6 @@ do_faultsim_test walfault-3 -prep { |
faultsim_test_result {0 {}} |
} |
- |
#-------------------------------------------------------------------------- |
# |
if {[permutation] != "inmemory_journal"} { |
@@ -141,7 +140,9 @@ if {[permutation] != "inmemory_journal"} { |
SELECT * FROM t1; |
} |
} -test { |
- faultsim_test_result {0 {wal 0 7 7 a b}} |
+ # Update: The following changed from {0 {wal 0 7 7 a b}} as a result |
+ # of PSOW being set by default. |
+ faultsim_test_result {0 {wal 0 5 5 a b}} |
faultsim_integrity_check |
} |
} |
@@ -465,7 +466,7 @@ do_test walfault-13-pre-1 { |
COMMIT; |
} |
faultsim_save_and_close |
- file delete sv_test.db-shm |
+ delete_file sv_test.db-shm |
} {} |
do_faultsim_test walfault-13.1 -prep { |
@@ -542,10 +543,48 @@ do_faultsim_test walfault-14 -prep { |
INSERT INTO abc VALUES(randomblob(1500)); |
} |
} -test { |
- faultsim_test_result {0 {0 10 10}} |
+ faultsim_test_result {0 {0 9 9}} |
faultsim_integrity_check |
set nRow [db eval {SELECT count(*) FROM abc}] |
if {!(($nRow==2 && $testrc) || $nRow==3)} { error "Bad db content" } |
} |
+#------------------------------------------------------------------------- |
+# Test fault-handling when switching out of exclusive-locking mode. |
+# |
+do_test walfault-14-pre { |
+ faultsim_delete_and_reopen |
+ execsql { |
+ PRAGMA auto_vacuum = 0; |
+ PRAGMA journal_mode = WAL; |
+ BEGIN; |
+ CREATE TABLE abc(a PRIMARY KEY); |
+ INSERT INTO abc VALUES(randomblob(1500)); |
+ INSERT INTO abc VALUES(randomblob(1500)); |
+ COMMIT; |
+ } |
+ faultsim_save_and_close |
+} {} |
+do_faultsim_test walfault-14 -prep { |
+ faultsim_restore_and_reopen |
+ execsql { |
+ SELECT count(*) FROM abc; |
+ PRAGMA locking_mode = exclusive; |
+ BEGIN; |
+ INSERT INTO abc VALUES(randomblob(1500)); |
+ COMMIT; |
+ } |
+} -body { |
+ db eval { |
+ PRAGMA locking_mode = normal; |
+ BEGIN; |
+ INSERT INTO abc VALUES(randomblob(1500)); |
+ COMMIT; |
+ } |
+} -test { |
+ faultsim_integrity_check |
+ set nRow [db eval {SELECT count(*) FROM abc}] |
+ if {$nRow!=3 && $nRow!=4} { error "Bad db content" } |
+} |
+ |
finish_test |