| OLD | NEW | 
 | (Empty) | 
|   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.2 2008/07/12 14:52:20 drh 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 |  | 
| OLD | NEW |