diff options
author | dan miller | 2007-10-20 02:49:29 +0000 |
---|---|---|
committer | dan miller | 2007-10-20 02:49:29 +0000 |
commit | e36d23a85ebff914d74bb541558c2b6082b78edb (patch) | |
tree | 54b58fdf162e78af64055282a6035c8d2443389d /libraries/sqlite/unix/sqlite-3.5.1/test/utf16align.test | |
parent | * Fixed an issue whereby avatar chat distances were being calculated against ... (diff) | |
download | opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.zip opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.gz opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.bz2 opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.xz |
sqlite source (unix build) added to libraries
Diffstat (limited to 'libraries/sqlite/unix/sqlite-3.5.1/test/utf16align.test')
-rw-r--r-- | libraries/sqlite/unix/sqlite-3.5.1/test/utf16align.test | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/libraries/sqlite/unix/sqlite-3.5.1/test/utf16align.test b/libraries/sqlite/unix/sqlite-3.5.1/test/utf16align.test new file mode 100644 index 0000000..fb41b77 --- /dev/null +++ b/libraries/sqlite/unix/sqlite-3.5.1/test/utf16align.test | |||
@@ -0,0 +1,84 @@ | |||
1 | # 2006 February 16 | ||
2 | # | ||
3 | # The author disclaims copyright to this source code. In place of | ||
4 | # a legal notice, here is a blessing: | ||
5 | # | ||
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. | ||
9 | # | ||
10 | #*********************************************************************** | ||
11 | # | ||
12 | # This file contains code to verify that the SQLITE_UTF16_ALIGNED | ||
13 | # flag passed into the sqlite3_create_collation() function insures | ||
14 | # that all strings passed to that function are aligned on an even | ||
15 | # byte boundary. | ||
16 | # | ||
17 | # $Id: utf16align.test,v 1.1 2006/02/16 18:16:38 drh Exp $ | ||
18 | |||
19 | set testdir [file dirname $argv0] | ||
20 | source $testdir/tester.tcl | ||
21 | |||
22 | # Skip this entire test if we do not support UTF16 | ||
23 | # | ||
24 | ifcapable !utf16 { | ||
25 | finish_test | ||
26 | return | ||
27 | } | ||
28 | |||
29 | # Create a database with a UTF16 encoding. Put in lots of string | ||
30 | # data of varying lengths. | ||
31 | # | ||
32 | do_test utf16align-1.0 { | ||
33 | set unaligned_string_counter 0 | ||
34 | add_alignment_test_collations [sqlite3_connection_pointer db] | ||
35 | execsql { | ||
36 | PRAGMA encoding=UTF16; | ||
37 | CREATE TABLE t1( | ||
38 | id INTEGER PRIMARY KEY, | ||
39 | spacer TEXT, | ||
40 | a TEXT COLLATE utf16_aligned, | ||
41 | b TEXT COLLATE utf16_unaligned | ||
42 | ); | ||
43 | INSERT INTO t1(a) VALUES("abc"); | ||
44 | INSERT INTO t1(a) VALUES("defghi"); | ||
45 | INSERT INTO t1(a) VALUES("jklmnopqrstuv"); | ||
46 | INSERT INTO t1(a) VALUES("wxyz0123456789-"); | ||
47 | UPDATE t1 SET b=a||'-'||a; | ||
48 | INSERT INTO t1(a,b) SELECT a||b, b||a FROM t1; | ||
49 | INSERT INTO t1(a,b) SELECT a||b, b||a FROM t1; | ||
50 | INSERT INTO t1(a,b) SELECT a||b, b||a FROM t1; | ||
51 | INSERT INTO t1(a,b) VALUES('one','two'); | ||
52 | INSERT INTO t1(a,b) SELECT a, b FROM t1; | ||
53 | UPDATE t1 SET spacer = CASE WHEN rowid&1 THEN 'x' ELSE 'xx' END; | ||
54 | SELECT count(*) FROM t1; | ||
55 | } | ||
56 | } 66 | ||
57 | do_test utf16align-1.1 { | ||
58 | set unaligned_string_counter | ||
59 | } 0 | ||
60 | |||
61 | # Creating an index that uses the unaligned collation. We should see | ||
62 | # some unaligned strings passed to the collating function. | ||
63 | # | ||
64 | do_test utf16align-1.2 { | ||
65 | execsql { | ||
66 | CREATE INDEX t1i1 ON t1(spacer, b); | ||
67 | } | ||
68 | # puts $unaligned_string_counter | ||
69 | expr {$unaligned_string_counter>0} | ||
70 | } 1 | ||
71 | |||
72 | # Create another index that uses the aligned collation. This time | ||
73 | # there should be no unaligned accesses | ||
74 | # | ||
75 | do_test utf16align-1.3 { | ||
76 | set unaligned_string_counter 0 | ||
77 | execsql { | ||
78 | CREATE INDEX t1i2 ON t1(spacer, a); | ||
79 | } | ||
80 | expr {$unaligned_string_counter>0} | ||
81 | } 0 | ||
82 | integrity_check utf16align-1.4 | ||
83 | |||
84 | finish_test | ||