| # 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] |
| if_no_rbu_support { finish_test ; return } |
| 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 |