diff options
Diffstat (limited to 'libraries/sqlite/unix/sqlite-3.5.1/test/collate7.test')
-rw-r--r-- | libraries/sqlite/unix/sqlite-3.5.1/test/collate7.test | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/libraries/sqlite/unix/sqlite-3.5.1/test/collate7.test b/libraries/sqlite/unix/sqlite-3.5.1/test/collate7.test new file mode 100644 index 0000000..0c913e2 --- /dev/null +++ b/libraries/sqlite/unix/sqlite-3.5.1/test/collate7.test | |||
@@ -0,0 +1,73 @@ | |||
1 | # | ||
2 | # 2007 May 7 | ||
3 | # | ||
4 | # The author disclaims copyright to this source code. In place of | ||
5 | # a legal notice, here is a blessing: | ||
6 | # | ||
7 | # May you do good and not evil. | ||
8 | # May you find forgiveness for yourself and forgive others. | ||
9 | # May you share freely, never taking more than you give. | ||
10 | # | ||
11 | #*********************************************************************** | ||
12 | # This file implements regression tests for SQLite library. The | ||
13 | # focus of this script is the experimental sqlite3_create_collation_v2() | ||
14 | # API. | ||
15 | # | ||
16 | # $Id: collate7.test,v 1.1 2007/05/07 14:58:53 danielk1977 Exp $ | ||
17 | |||
18 | set testdir [file dirname $argv0] | ||
19 | source $testdir/tester.tcl | ||
20 | |||
21 | set ::caseless_del 0 | ||
22 | proc caseless_cmp {zLeft zRight} { | ||
23 | string compare -nocase $zLeft $zRight | ||
24 | } | ||
25 | |||
26 | do_test collate7-1.1 { | ||
27 | set cmd [list incr ::caseless_del] | ||
28 | sqlite3_create_collation_v2 db CASELESS caseless_cmp $cmd | ||
29 | set ::caseless_del | ||
30 | } {0} | ||
31 | do_test collate7-1.2 { | ||
32 | sqlite_delete_collation db CASELESS | ||
33 | set ::caseless_del | ||
34 | } {1} | ||
35 | do_test collate7-1.3 { | ||
36 | catchsql { | ||
37 | CREATE TABLE abc(a COLLATE CASELESS, b, c); | ||
38 | } | ||
39 | } {1 {no such collation sequence: CASELESS}} | ||
40 | do_test collate7-1.4 { | ||
41 | sqlite3_create_collation_v2 db CASELESS caseless_cmp {incr ::caseless_del} | ||
42 | db close | ||
43 | set ::caseless_del | ||
44 | } {2} | ||
45 | |||
46 | do_test collate7-2.1 { | ||
47 | file delete -force test.db test.db-journal | ||
48 | sqlite3 db test.db | ||
49 | sqlite3_create_collation_v2 db CASELESS caseless_cmp {incr ::caseless_del} | ||
50 | execsql { | ||
51 | PRAGMA encoding='utf-16'; | ||
52 | CREATE TABLE abc16(a COLLATE CASELESS, b, c); | ||
53 | } db | ||
54 | set ::caseless_del | ||
55 | } {2} | ||
56 | do_test collate7-2.2 { | ||
57 | execsql { | ||
58 | SELECT * FROM abc16 WHERE a < 'abc'; | ||
59 | } | ||
60 | set ::caseless_del | ||
61 | } {2} | ||
62 | do_test collate7-2.3 { | ||
63 | sqlite_delete_collation db CASELESS | ||
64 | set ::caseless_del | ||
65 | } {3} | ||
66 | do_test collate7-2.4 { | ||
67 | catchsql { | ||
68 | SELECT * FROM abc16 WHERE a < 'abc'; | ||
69 | } | ||
70 | } {1 {no such collation sequence: CASELESS}} | ||
71 | |||
72 | finish_test | ||
73 | |||