]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
New test cases for rbu_exclusive_checkpoint query parameter. rbu_exclusive_checkpoint
authordrh <>
Fri, 5 Nov 2021 22:23:17 +0000 (22:23 +0000)
committerdrh <>
Fri, 5 Nov 2021 22:23:17 +0000 (22:23 +0000)
FossilOrigin-Name: 00285ff10c771066876896b28cd5185ec3792166b00702326954ef6678f19da8

ext/rbu/rbuexlock.test
manifest
manifest.uuid

index b91551b575cb0dd3243af1d273878dad14ad9759..eddcdc115fc786693a3c685ad6c05fab4c427b64 100644 (file)
@@ -62,6 +62,9 @@ do_test 1.2.0 {
   rbu step
 } SQLITE_OK
 do_catchsql_test 1.2.1 { SELECT * FROM t1 } {0 {1 2 3}}
+do_test 1.2.2 {
+  db eval {PRAGMA journal_mode}
+} {delete}
 
 do_test 1.3.0 {
   while {[file exists test.db-wal]==0} {
@@ -69,11 +72,19 @@ do_test 1.3.0 {
   }
 } {}
 do_catchsql_test 1.3.1 { SELECT * FROM t1 } {1 {database is locked}}
+do_test 1.3.2 {
+  db eval {PRAGMA journal_mode}
+} {delete}
+
 
 do_test 1.4.0 {
   rbu step
 } SQLITE_OK
 do_catchsql_test 1.4.1 { SELECT * FROM t1 } {1 {database is locked}}
+do_test 1.4.2 {
+  db eval {PRAGMA journal_mode}
+} {delete}
+
 
 rbu close
 
@@ -85,18 +96,112 @@ do_test 1.5.1 {
   file exists test.db-wal
 } 1
 do_catchsql_test 1.5.2 { SELECT * FROM t1 } {1 {database is locked}}
+do_test 1.5.2 {
+  db eval {PRAGMA journal_mode}
+} {delete}
+
 
 do_test 1.6.0 {
   rbu step
 } SQLITE_OK
 do_catchsql_test 1.6.1 { SELECT * FROM t1 } {1 {database is locked}}
+do_test 1.6.2 {
+  db eval {PRAGMA journal_mode}
+} {delete}
 
 do_test 1.7.0 {
   while {[rbu step]=="SQLITE_OK"} {}
   rbu close
 } SQLITE_DONE
 do_catchsql_test 1.7.2 { SELECT count(*) FROM t1 } {0 9}
+do_test 1.7.2 {
+  db eval {PRAGMA journal_mode}
+} {delete}
 
-finish_test
+reset_db
+do_execsql_test 2.0 {
+  CREATE TABLE t1(a PRIMARY KEY, b INT, c INT);
+  CREATE INDEX t1b ON t1(b);
+  CREATE INDEX t1c ON t1(c);
+  INSERT INTO t1 VALUES(1, 2, 3);
+}
+create_rbu rbu1.db
+
+do_test 2.1.0 {
+  sqlite3rbu rbu file:test.db?rbu_exclusive_checkpoint=0 rbu1.db
+  rbu step
+} SQLITE_OK
+do_catchsql_test 2.1.1 { SELECT * FROM t1 } {0 {1 2 3}}
 
+do_test 2.2.0 {
+  for {set ii 0} {$ii < 10} {incr ii} {
+    rbu step
+  }
+  rbu step
+} SQLITE_OK
+do_catchsql_test 2.2.1 { SELECT * FROM t1 } {0 {1 2 3}}
 
+do_test 2.3.0 {
+  while {[file exists test.db-wal]==0} {
+    rbu step
+  }
+} {}
+do_test 2.3.1 {
+  llength [db eval {SELECT * FROM t1}]
+} {27}
+do_test 2.3.2 {
+  db eval {PRAGMA journal_mode}
+} {wal}
+
+do_test 2.4.0 {
+  rbu step
+} SQLITE_OK
+do_test 2.4.1 {
+  llength [db eval  {SELECT * FROM t1}]
+} {27}
+do_test 2.4.2 {
+  db eval {PRAGMA journal_mode}
+} {wal}
+
+rbu close
+
+do_test 2.5.0 {
+  db eval {PRAGMA journal_mode}
+} {wal}
+do_execsql_test 2.5.1 {
+  DELETE FROM t1;
+} {}
+
+create_rbu rbu1.db
+do_test 3.1.0 {
+  sqlite3rbu rbu file:test.db?rbu_exclusive_checkpoint=0 rbu1.db
+  rbu step
+} SQLITE_ERROR
+
+do_test 3.1.1 {
+  set rc [catch {rbu close} msg]
+  lappend rc $msg
+} {1 {SQLITE_ERROR - cannot update wal mode database}}
+db eval {PRAGMA journal_mode=DELETE}
+
+create_rbu rbu1.db
+do_test 3.2.0 {
+  sqlite3rbu rbu file:test.db?rbu_exclusive_checkpoint=0 rbu1.db
+  rbu step
+} SQLITE_OK
+
+do_test 3.3.1 {
+  set rc [catch {rbu close} msg]
+  lappend rc $msg
+} {0 SQLITE_OK}
+
+db close
+create_rbu rbu1.db
+do_test 3.4.0 {
+  sqlite3rbu rbu file:test.db?rbu_exclusive_checkpoint=0 rbu1.db
+  rbu step
+} SQLITE_OK
+rbu close
+
+
+finish_test
index b995f00fa33eb1093b0e6b3dddc33debec38cc99..e0d33fccd7e8cdd148157b70a4e9a5d6e0e5c309 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C If\sthe\starget\sdatabase\sURI\spassed\sto\ssqlite3rbu_open()\sis\scontains\sthe\soption\s"rbu_exclusive_checkpoint=1",\shold\san\sexclusive\slock\sfor\sthe\sduration\sof\sany\sincremental\scheckpoint\soperation.
-D 2021-11-05T19:04:01.138
+C New\stest\scases\sfor\srbu_exclusive_checkpoint\squery\sparameter.
+D 2021-11-05T22:23:17.942
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -362,7 +362,7 @@ F ext/rbu/rbucrash.test 000981a1fe8a6e4d9a684232f6a129e66a3ef595f5ed74655e2f9c68
 F ext/rbu/rbucrash2.test efa143cc94228eb0266d3f1abfbee60a5838a84cef7cc3fcb8c145b74d96fd41
 F ext/rbu/rbudiff.test abe895a8d479e4d33acb40e244e3d8e2cd25f55a18dfa8b9f83e13d00073f600
 F ext/rbu/rbudor.test e3e8623926012f43eebe51fedf06a102df2640750d971596b052495f2536db20
-F ext/rbu/rbuexlock.test ce99289f37d43553aaae5bf9b0bb6f37015ffcc98a9c561ef597151f522bd3cb
+F ext/rbu/rbuexlock.test 4634a5526d02bf80b0c563f95774bd5af5783e3219ddeb30e413753c9a65510c
 F ext/rbu/rbuexpr.test 10d0420537c3bc7666e576d72adeffe7e86cfbb00dcc30aa9ce096c042415190
 F ext/rbu/rbufault.test 2d7f567b79d558f6e093c58808cab4354f8a174e3802f69e7790a9689b3c09f8
 F ext/rbu/rbufault2.test c81327a3ac2c385b9b954db3644d4e0df93eeebfc3de9f1f29975a1e73fd3d0c
@@ -1931,7 +1931,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 7bba415f91884a20f665e982376c2c5e91a4431e218c8eefe275be3684f2e59a
-R e2424ac8d0557dd9d5d724897de5e654
-U dan
-Z 27db83bf4d55dcba53397a29f8b19719
+P 7cb77296a22a87e7ed4c3544792f0204f704f01f384590c32c256bec4517c9bc
+R 08dbedf050be2c4881195e0dd45c9bb5
+U drh
+Z 1433471f7df716422bf5765d068b69b8
index 9777c013e81b578200eb79e2dc389d3f59922988..010e103d4e18314a3ac6d7323f79bf7ef5a91d0f 100644 (file)
@@ -1 +1 @@
-7cb77296a22a87e7ed4c3544792f0204f704f01f384590c32c256bec4517c9bc
\ No newline at end of file
+00285ff10c771066876896b28cd5185ec3792166b00702326954ef6678f19da8
\ No newline at end of file