1# 2014 August 30 2# 3# The author disclaims copyright to this source code. In place of 4# a legal notice, here is a blessing: 5# 6# May you do good and not evil. 7# May you find forgiveness for yourself and forgive others. 8# May you share freely, never taking more than you give. 9# 10#*********************************************************************** 11# 12# 13 14source [file join [file dirname [info script]] rbu_common.tcl] 15set ::testprefix rbubusy 16 17db close 18sqlite3_shutdown 19test_sqlite3_log xLog 20reset_db 21 22set db_sql { 23 CREATE TABLE t1(a PRIMARY KEY, b, c); 24 INSERT INTO t1 VALUES(1000, 2000, 3000); 25} 26 27set rbu_sql { 28 CREATE TABLE data_t1(a, b, c, rbu_control); 29 INSERT INTO data_t1 VALUES(1, 2, 3, 0); 30 INSERT INTO data_t1 VALUES(4, 5, 6, 0); 31 INSERT INTO data_t1 VALUES(7, 8, 9, 0); 32} 33 34do_test 1.1 { 35 forcedelete rbu.db 36 sqlite3 rbu rbu.db 37 rbu eval $rbu_sql 38 rbu close 39 40 db eval $db_sql 41} {} 42 43do_execsql_test 1.2 { 44 BEGIN; 45 SELECT * FROM t1 46} {1000 2000 3000} 47 48do_test 1.3 { 49 sqlite3rbu rbu test.db rbu.db 50 rbu step 51} {SQLITE_OK} 52 53do_test 1.4 { 54 while 1 { 55 set rc [rbu step] 56 if {$rc!="SQLITE_OK"} break 57 } 58 set rc 59} {SQLITE_BUSY} 60 61do_test 1.5 { 62 rbu step 63} {SQLITE_BUSY} 64 65do_test 1.6 { 66 db eval COMMIT 67 rbu step 68} {SQLITE_BUSY} 69catch { rbu close } 70 71do_test 1.7 { 72 sqlite3rbu rbu test.db rbu.db 73 while 1 { 74 set rc [rbu step] 75 if {$rc!="SQLITE_OK"} break 76 } 77 set rc 78} {SQLITE_DONE} 79 80rbu close 81 82db close 83sqlite3_shutdown 84test_sqlite3_log 85sqlite3_initialize 86finish_test 87 88