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 |