Annotation of embedaddon/sqlite3/test/enc3.test, revision 1.1.1.1

1.1       misho       1: # 2002 May 24
                      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: # This file implements regression tests for SQLite library. 
                     12: #
                     13: # The focus of this file is testing of the proper handling of conversions
                     14: # to the native text representation.
                     15: #
                     16: # $Id: enc3.test,v 1.8 2008/01/22 01:48:09 drh Exp $
                     17: 
                     18: set testdir [file dirname $argv0]
                     19: source $testdir/tester.tcl
                     20: 
                     21: ifcapable {utf16} {
                     22:   do_test enc3-1.1 {
                     23:     execsql {
                     24:       PRAGMA encoding=utf16le;
                     25:       PRAGMA encoding;
                     26:     }
                     27:   } {UTF-16le}
                     28: }
                     29: do_test enc3-1.2 {
                     30:   execsql {
                     31:     CREATE TABLE t1(x,y);
                     32:     INSERT INTO t1 VALUES('abc''123',5);
                     33:     SELECT * FROM t1
                     34:   }
                     35: } {abc'123 5}
                     36: do_test enc3-1.3 {
                     37:   execsql {
                     38:     SELECT quote(x) || ' ' || quote(y) FROM t1
                     39:   }
                     40: } {{'abc''123' 5}}
                     41: ifcapable {bloblit} {
                     42:   do_test enc3-1.4 {
                     43:     execsql {
                     44:       DELETE FROM t1;
                     45:       INSERT INTO t1 VALUES(x'616263646566',NULL);
                     46:       SELECT * FROM t1
                     47:     }
                     48:   } {abcdef {}}
                     49:   do_test enc3-1.5 {
                     50:     execsql {
                     51:       SELECT quote(x) || ' ' || quote(y) FROM t1
                     52:     }
                     53:   } {{X'616263646566' NULL}}
                     54: }
                     55: ifcapable {bloblit && utf16} {
                     56:   do_test enc3-2.1 {
                     57:     execsql {
                     58:       PRAGMA encoding
                     59:     }
                     60:   } {UTF-16le}
                     61:   do_test enc3-2.2 {
                     62:     execsql {
                     63:       CREATE TABLE t2(a);
                     64:       INSERT INTO t2 VALUES(x'61006200630064006500');
                     65:       SELECT CAST(a AS text) FROM t2 WHERE a LIKE 'abc%';
                     66:     }
                     67:   } {abcde}
                     68:   do_test enc3-2.3 {
                     69:     execsql {
                     70:       SELECT CAST(x'61006200630064006500' AS text);
                     71:     }
                     72:   } {abcde}
                     73:   do_test enc3-2.4 {
                     74:     execsql {
                     75:       SELECT rowid FROM t2 WHERE a LIKE x'610062002500';
                     76:     }
                     77:   } {1}
                     78: }
                     79: 
                     80: # Try to attach a database with a different encoding.
                     81: #
                     82: ifcapable {utf16 && shared_cache} {
                     83:   db close
                     84:   forcedelete test8.db test8.db-journal
                     85:   set ::enable_shared_cache [sqlite3_enable_shared_cache 1]
                     86:   sqlite3 dbaux test8.db
                     87:   sqlite3 db test.db
                     88:   db eval {SELECT 1 FROM sqlite_master LIMIT 1}
                     89:   do_test enc3-3.1 {
                     90:     dbaux eval {
                     91:       PRAGMA encoding='utf8';
                     92:       CREATE TABLE t1(x);
                     93:       PRAGMA encoding
                     94:     }
                     95:   } {UTF-8}
                     96:   do_test enc3-3.2 {
                     97:     catchsql {
                     98:       ATTACH 'test.db' AS utf16;
                     99:       SELECT 1 FROM utf16.sqlite_master LIMIT 1;
                    100:     } dbaux
                    101:   } {1 {attached databases must use the same text encoding as main database}}
                    102:   dbaux close
                    103:   forcedelete test8.db test8.db-journal
                    104:   sqlite3_enable_shared_cache $::enable_shared_cache
                    105: }
                    106: 
                    107: finish_test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>