| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| source [file join [file dirname [info script]] rbu_common.tcl] |
| if_no_rbu_support { finish_test ; return } |
| set ::testprefix rbu6 |
|
|
| proc setup_test {} { |
| reset_db |
| execsql { |
| CREATE TABLE t1(a INTEGER PRIMARY KEY, b UNIQUE); |
| CREATE TABLE t2(a INTEGER PRIMARY KEY, b UNIQUE); |
| CREATE TABLE t3(a INTEGER PRIMARY KEY, b UNIQUE); |
| } |
| db close |
|
|
| forcedelete rbu.db |
| sqlite3 rbu rbu.db |
| rbu eval { |
| CREATE TABLE data_t1(a, b, rbu_control); |
| CREATE TABLE data_t2(a, b, rbu_control); |
| CREATE TABLE data_t3(a, b, rbu_control); |
| INSERT INTO data_t1 VALUES(1, 't1', 0); |
| INSERT INTO data_t2 VALUES(2, 't2', 0); |
| INSERT INTO data_t3 VALUES(3, 't3', 0); |
| } |
| rbu close |
| } |
|
|
| |
| |
| |
| |
| for {set nStep 1} {$nStep < 8} {incr nStep} { |
| do_test 1.$nStep.1 { |
| setup_test |
| sqlite3rbu rbu test.db rbu.db |
| for {set i 0} {$i<$nStep} {incr i} {rbu step} |
|
|
| rbu close |
| sqlite3 db test.db |
| execsql { INSERT INTO t1 VALUES(5, 'hello') } |
| sqlite3rbu rbu test.db rbu.db |
| rbu step |
| } {SQLITE_BUSY} |
| do_test 1.$nStep.2 { |
| rbu step |
| } {SQLITE_BUSY} |
| do_test 1.$nStep.3 { |
| list [file exists test.db-oal] [file exists test.db-wal] |
| } {1 0} |
| do_test 1.$nStep.4 { |
| list [catch { rbu close } msg] $msg |
| } {1 {SQLITE_BUSY - database modified during rbu update}} |
| } |
|
|
| |
| |
| |
| |
| for {set nStep 8} {$nStep < 20} {incr nStep} { |
| do_test 1.$nStep.1 { |
| setup_test |
| sqlite3rbu rbu test.db rbu.db |
| for {set i 0} {$i<$nStep} {incr i} {rbu step} |
| rbu close |
| sqlite3 db test.db |
| execsql { INSERT INTO t1 VALUES(5, 'hello') } |
| sqlite3rbu rbu test.db rbu.db |
| rbu step |
| } {SQLITE_DONE} |
| do_test 1.$nStep.2 { |
| rbu step |
| } {SQLITE_DONE} |
| do_test 1.$nStep.3 { |
| file exists test.db-oal |
| } {0} |
| do_test 1.$nStep.4 { |
| list [catch { rbu close } msg] $msg |
| } {0 SQLITE_DONE} |
|
|
| do_execsql_test 1.$nStep.5 { |
| SELECT * FROM t1; |
| } {1 t1 5 hello} |
| } |
|
|
|
|
| finish_test |
|
|