Snapshot of upstream SQLite 3.40.1
[sqlcipher.git] / ext / rbu / rbucollate.test
blobccc097624708b0a78b9fb8a7d6177b5d299d4098
1 # 2018 March 22
3 # The author disclaims copyright to this source code.  In place of
4 # a legal notice, here is a blessing:
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.
10 #***********************************************************************
13 source [file join [file dirname [info script]] rbu_common.tcl]
14 set ::testprefix rbucollate
16 ifcapable !icu_collations {
17   finish_test
18   return
21 db close
22 sqlite3_shutdown
23 sqlite3_config_uri 1
24 reset_db
26 # Create a simple RBU database. That expects to write to a table:
28 #   CREATE TABLE t1(a PRIMARY KEY, b, c);
30 proc create_rbu1 {filename} {
31   forcedelete $filename
32   sqlite3 rbu1 $filename  
33   rbu1 eval {
34     CREATE TABLE data_t1(a, b, c, rbu_control);
35     INSERT INTO data_t1 VALUES('a', 'one', 1, 0);
36     INSERT INTO data_t1 VALUES('b', 'two', 2, 0);
37     INSERT INTO data_t1 VALUES('c', 'three', 3, 0);
38   }
39   rbu1 close
40   return $filename
43 do_execsql_test 1.0 {
44   SELECT icu_load_collation('en_US', 'my-collate');
45   CREATE TABLE t1(a COLLATE "my-collate" PRIMARY KEY, b, c);
46 } {{}}
48 do_test 1.2 {
49   create_rbu1 testrbu.db
50   sqlite3rbu rbu test.db testrbu.db
51   rbu dbMain_eval { SELECT icu_load_collation('en_US', 'my-collate') }
52   rbu dbRbu_eval { SELECT icu_load_collation('en_US', 'my-collate') }
53   while 1 {
54     set rc [rbu step]
55     if {$rc!="SQLITE_OK"} break
56   }
57   rbu close
58   db eval { SELECT * FROM t1 }
59 } {a one 1 b two 2 c three 3}
61 #forcedelete testrbu.db
62 finish_test