| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | if {![info exists testdir]} { |
| | set testdir [file join [file dirname [info script]] .. .. test] |
| | } |
| | source [file join [file dirname [info script]] session_common.tcl] |
| | source $testdir/tester.tcl |
| | ifcapable !session {finish_test; return} |
| | ifcapable !incrblob {finish_test; return} |
| |
|
| | set testprefix session6 |
| |
|
| | proc do_then_apply_tcl {tcl {dbname main}} { |
| | proc xConflict args { return "OMIT" } |
| | set rc [catch { |
| | sqlite3session S db $dbname |
| | db eval "SELECT name FROM $dbname.sqlite_master WHERE type = 'table'" { |
| | S attach $name |
| | } |
| | eval $tcl |
| | sqlite3changeset_apply db2 [S changeset] xConflict |
| | } msg] |
| |
|
| | catch { S delete } |
| | if {$rc} {error $msg} |
| | } |
| |
|
| | test_sqlite3_log x |
| | proc x {args} {puts $args} |
| |
|
| | forcedelete test.db2 |
| | sqlite3 db2 test.db2 |
| |
|
| | do_common_sql { |
| | CREATE TABLE t1(a PRIMARY KEY, b); |
| | CREATE TABLE t2(c PRIMARY KEY, d); |
| | } |
| |
|
| | |
| | |
| | do_test 1.1 { |
| | do_then_apply_tcl { |
| | db eval { INSERT INTO t1 VALUES(1, 'helloworld') } |
| | db eval { INSERT INTO t2 VALUES(2, 'onetwothree') } |
| | } |
| | compare_db db db2 |
| | } {} |
| | do_test 1.2 { |
| | do_then_apply_tcl { |
| | set fd [db incrblob t1 b 1] |
| | puts -nonewline $fd 1234567890 |
| | close $fd |
| | } |
| | compare_db db db2 |
| | } {} |
| |
|
| | |
| | |
| | do_test 2.1 { |
| | forcedelete test.db3 |
| | file copy test.db2 test.db3 |
| | execsql { ATTACH 'test.db3' AS aux; } |
| |
|
| | do_then_apply_tcl { |
| | set fd [db incrblob aux t2 d 1] |
| | puts -nonewline $fd fourfivesix |
| | close $fd |
| | } aux |
| |
|
| | sqlite3 db3 test.db3 |
| | compare_db db2 db3 |
| | } {} |
| |
|
| |
|
| | db3 close |
| | db2 close |
| |
|
| | finish_test |
| |
|