| # 2018 March 22 |
| # |
| # 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 rbucollate |
| |
| ifcapable !icu_collations { |
| finish_test |
| return |
| } |
| |
| # Create a simple RBU database. That expects to write to a table: |
| # |
| # CREATE TABLE t1(a PRIMARY KEY, b, c); |
| # |
| proc create_rbu1 {filename} { |
| forcedelete $filename |
| sqlite3 rbu1 $filename |
| rbu1 eval { |
| CREATE TABLE data_t1(a, b, c, rbu_control); |
| INSERT INTO data_t1 VALUES('a', 'one', 1, 0); |
| INSERT INTO data_t1 VALUES('b', 'two', 2, 0); |
| INSERT INTO data_t1 VALUES('c', 'three', 3, 0); |
| } |
| rbu1 close |
| return $filename |
| } |
| |
| do_execsql_test 1.0 { |
| SELECT icu_load_collation('en_US', 'my-collate'); |
| CREATE TABLE t1(a COLLATE "my-collate" PRIMARY KEY, b, c); |
| } {{}} |
| |
| do_test 1.2 { |
| create_rbu1 testrbu.db |
| sqlite3rbu rbu test.db testrbu.db |
| rbu dbMain_eval { SELECT icu_load_collation('en_US', 'my-collate') } |
| rbu dbRbu_eval { SELECT icu_load_collation('en_US', 'my-collate') } |
| while 1 { |
| set rc [rbu step] |
| if {$rc!="SQLITE_OK"} break |
| } |
| rbu close |
| db eval { SELECT * FROM t1 } |
| } {a one 1 b two 2 c three 3} |
| |
| #forcedelete testrbu.db |
| finish_test |