Annotation of embedaddon/sqlite3/test/enc3.test, revision 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>