summaryrefslogtreecommitdiffstats
path: root/ext/rbu/rburename.test
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--ext/rbu/rburename.test54
1 files changed, 54 insertions, 0 deletions
diff --git a/ext/rbu/rburename.test b/ext/rbu/rburename.test
new file mode 100644
index 0000000..2275396
--- /dev/null
+++ b/ext/rbu/rburename.test
@@ -0,0 +1,54 @@
+# 2022 November 07
+#
+# The author disclaims copyright to this source code. In place of
+# a legal notice, here is a blessing:
+#
+# May you do good and not evil.
+# May you find forgiveness for yourself and forgive others.
+# May you share freely, never taking more than you give.
+#
+#***********************************************************************
+#
+#
+
+source [file join [file dirname [info script]] rbu_common.tcl]
+set ::testprefix rburename
+
+
+do_execsql_test 1.0 {
+ CREATE TABLE t1(a, b);
+ INSERT INTO t1 VALUES(1, 2);
+ INSERT INTO t1 VALUES(3, 4);
+ INSERT INTO t1 VALUES(5, 6);
+}
+
+forcedelete test.db-vacuum
+
+proc my_rename {old new} {
+ lappend ::my_rename_calls [list [file tail $old] [file tail $new]]
+ file rename $old $new
+}
+
+do_test 1.1 {
+ sqlite3rbu_vacuum rbu test.db
+ rbu rename_handler my_rename
+ while {[rbu step]=="SQLITE_OK"} {}
+ rbu close
+} SQLITE_DONE
+
+do_test 1.2 {
+ set ::my_rename_calls
+} {{test.db-oal test.db-wal}}
+
+proc my_rename {old new} {
+ error "something went wrong"
+}
+
+do_test 1.3 {
+ sqlite3rbu_vacuum rbu test.db
+ rbu rename_handler my_rename
+ while {[rbu step]=="SQLITE_OK"} {}
+ list [catch { rbu close } msg] $msg
+} {1 SQLITE_IOERR}
+
+finish_test