| Index: third_party/sqlite/sqlite-src-3070603/test/enc3.test | 
| diff --git a/third_party/sqlite/sqlite-src-3070603/test/enc3.test b/third_party/sqlite/sqlite-src-3070603/test/enc3.test | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..44b217934e102664750f6911d10632fdc9d0cd7f | 
| --- /dev/null | 
| +++ b/third_party/sqlite/sqlite-src-3070603/test/enc3.test | 
| @@ -0,0 +1,107 @@ | 
| +# 2002 May 24 | 
| +# | 
| +# The author disclaims copyright to this source code.  In place of | 
| +# a legal notice, here is a blessing: | 
| +# | 
| +#    May you do good and not evil. | 
| +#    May you find forgiveness for yourself and forgive others. | 
| +#    May you share freely, never taking more than you give. | 
| +# | 
| +#*********************************************************************** | 
| +# This file implements regression tests for SQLite library. | 
| +# | 
| +# The focus of this file is testing of the proper handling of conversions | 
| +# to the native text representation. | 
| +# | 
| +# $Id: enc3.test,v 1.8 2008/01/22 01:48:09 drh Exp $ | 
| + | 
| +set testdir [file dirname $argv0] | 
| +source $testdir/tester.tcl | 
| + | 
| +ifcapable {utf16} { | 
| +  do_test enc3-1.1 { | 
| +    execsql { | 
| +      PRAGMA encoding=utf16le; | 
| +      PRAGMA encoding; | 
| +    } | 
| +  } {UTF-16le} | 
| +} | 
| +do_test enc3-1.2 { | 
| +  execsql { | 
| +    CREATE TABLE t1(x,y); | 
| +    INSERT INTO t1 VALUES('abc''123',5); | 
| +    SELECT * FROM t1 | 
| +  } | 
| +} {abc'123 5} | 
| +do_test enc3-1.3 { | 
| +  execsql { | 
| +    SELECT quote(x) || ' ' || quote(y) FROM t1 | 
| +  } | 
| +} {{'abc''123' 5}} | 
| +ifcapable {bloblit} { | 
| +  do_test enc3-1.4 { | 
| +    execsql { | 
| +      DELETE FROM t1; | 
| +      INSERT INTO t1 VALUES(x'616263646566',NULL); | 
| +      SELECT * FROM t1 | 
| +    } | 
| +  } {abcdef {}} | 
| +  do_test enc3-1.5 { | 
| +    execsql { | 
| +      SELECT quote(x) || ' ' || quote(y) FROM t1 | 
| +    } | 
| +  } {{X'616263646566' NULL}} | 
| +} | 
| +ifcapable {bloblit && utf16} { | 
| +  do_test enc3-2.1 { | 
| +    execsql { | 
| +      PRAGMA encoding | 
| +    } | 
| +  } {UTF-16le} | 
| +  do_test enc3-2.2 { | 
| +    execsql { | 
| +      CREATE TABLE t2(a); | 
| +      INSERT INTO t2 VALUES(x'61006200630064006500'); | 
| +      SELECT CAST(a AS text) FROM t2 WHERE a LIKE 'abc%'; | 
| +    } | 
| +  } {abcde} | 
| +  do_test enc3-2.3 { | 
| +    execsql { | 
| +      SELECT CAST(x'61006200630064006500' AS text); | 
| +    } | 
| +  } {abcde} | 
| +  do_test enc3-2.4 { | 
| +    execsql { | 
| +      SELECT rowid FROM t2 WHERE a LIKE x'610062002500'; | 
| +    } | 
| +  } {1} | 
| +} | 
| + | 
| +# Try to attach a database with a different encoding. | 
| +# | 
| +ifcapable {utf16 && shared_cache} { | 
| +  db close | 
| +  file delete -force test8.db test8.db-journal | 
| +  set ::enable_shared_cache [sqlite3_enable_shared_cache 1] | 
| +  sqlite3 dbaux test8.db | 
| +  sqlite3 db test.db | 
| +  db eval {SELECT 1 FROM sqlite_master LIMIT 1} | 
| +  do_test enc3-3.1 { | 
| +    dbaux eval { | 
| +      PRAGMA encoding='utf8'; | 
| +      CREATE TABLE t1(x); | 
| +      PRAGMA encoding | 
| +    } | 
| +  } {UTF-8} | 
| +  do_test enc3-3.2 { | 
| +    catchsql { | 
| +      ATTACH 'test.db' AS utf16; | 
| +      SELECT 1 FROM utf16.sqlite_master LIMIT 1; | 
| +    } dbaux | 
| +  } {1 {attached databases must use the same text encoding as main database}} | 
| +  dbaux close | 
| +  file delete -force test8.db test8.db-journal | 
| +  sqlite3_enable_shared_cache $::enable_shared_cache | 
| +} | 
| + | 
| +finish_test | 
|  |