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>