modernc.org/cc@v1.0.1/v2/testdata/_sqlite/ext/rbu/rbuA.test (about) 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 # This file contains tests for the RBU module. More specifically, it 13 # contains tests to ensure that it is an error to attempt to update 14 # a wal mode database via RBU. 15 # 16 17 if {![info exists testdir]} { 18 set testdir [file join [file dirname [info script]] .. .. test] 19 } 20 source $testdir/tester.tcl 21 set ::testprefix rbuA 22 23 set db_sql { 24 CREATE TABLE t1(a PRIMARY KEY, b, c); 25 } 26 set rbu_sql { 27 CREATE TABLE data_t1(a, b, c, rbu_control); 28 INSERT INTO data_t1 VALUES(1, 2, 3, 0); 29 INSERT INTO data_t1 VALUES(4, 5, 6, 0); 30 INSERT INTO data_t1 VALUES(7, 8, 9, 0); 31 } 32 33 do_test 1.0 { 34 db close 35 forcedelete test.db rbu.db 36 37 sqlite3 db test.db 38 db eval $db_sql 39 db eval { PRAGMA journal_mode = wal } 40 db close 41 42 sqlite3 db rbu.db 43 db eval $rbu_sql 44 db close 45 46 sqlite3rbu rbu test.db rbu.db 47 rbu step 48 } {SQLITE_ERROR} 49 do_test 1.1 { 50 list [catch { rbu close } msg] $msg 51 } {1 {SQLITE_ERROR - cannot update wal mode database}} 52 53 do_test 2.0 { 54 forcedelete test.db rbu.db 55 56 sqlite3 db test.db 57 db eval $db_sql 58 db close 59 60 sqlite3 db rbu.db 61 db eval $rbu_sql 62 db close 63 64 sqlite3rbu rbu test.db rbu.db 65 rbu step 66 rbu close 67 } {SQLITE_OK} 68 69 do_test 2.1 { 70 sqlite3 db test.db 71 db eval {PRAGMA journal_mode = wal} 72 db close 73 sqlite3rbu rbu test.db rbu.db 74 rbu step 75 } {SQLITE_ERROR} 76 77 do_test 2.2 { 78 list [catch { rbu close } msg] $msg 79 } {1 {SQLITE_ERROR - cannot update wal mode database}} 80 81 82 finish_test 83