| OLD | NEW |
| 1 # 2010 Sept 29 | 1 # 2010 Sept 29 |
| 2 # | 2 # |
| 3 # The author disclaims copyright to this source code. In place of | 3 # The author disclaims copyright to this source code. In place of |
| 4 # a legal notice, here is a blessing: | 4 # a legal notice, here is a blessing: |
| 5 # | 5 # |
| 6 # May you do good and not evil. | 6 # May you do good and not evil. |
| 7 # May you find forgiveness for yourself and forgive others. | 7 # May you find forgiveness for yourself and forgive others. |
| 8 # May you share freely, never taking more than you give. | 8 # May you share freely, never taking more than you give. |
| 9 # | 9 # |
| 10 #*********************************************************************** | 10 #*********************************************************************** |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 # vals | 36 # vals |
| 37 set vals [list\ | 37 set vals [list\ |
| 38 "922337203685477580792233720368547758079223372036854775807"\ | 38 "922337203685477580792233720368547758079223372036854775807"\ |
| 39 "100000000000000000000000000000000000000000000000000000000"\ | 39 "100000000000000000000000000000000000000000000000000000000"\ |
| 40 "1.0000000000000000000000000000000000000000000000000000000"\ | 40 "1.0000000000000000000000000000000000000000000000000000000"\ |
| 41 ] | 41 ] |
| 42 | 42 |
| 43 set i 1 | 43 set i 1 |
| 44 foreach enc $encodings { | 44 foreach enc $encodings { |
| 45 | 45 |
| 46 file delete -force test.db | 46 forcedelete test.db |
| 47 sqlite3 db test.db | 47 sqlite3 db test.db |
| 48 db eval "PRAGMA encoding = \"$enc\"" | 48 db eval "PRAGMA encoding = \"$enc\"" |
| 49 | 49 |
| 50 do_test enc4-$i.1 { | 50 do_test enc4-$i.1 { |
| 51 db eval {PRAGMA encoding} | 51 db eval {PRAGMA encoding} |
| 52 } $enc | 52 } $enc |
| 53 | 53 |
| 54 set j 1 | 54 set j 1 |
| 55 foreach init $inits { | 55 foreach init $inits { |
| 56 | 56 |
| 57 do_test enc4-$i.$j.2 { | 57 do_test enc4-$i.$j.2 { |
| 58 set S [sqlite3_prepare_v2 db "SELECT $init+?" -1 dummy] | 58 set S [sqlite3_prepare_v2 db "SELECT $init+?" -1 dummy] |
| 59 sqlite3_expired $S | 59 sqlite3_expired $S |
| 60 } {0} | 60 } {0} |
| 61 | 61 |
| 62 set k 1 | 62 set k 1 |
| 63 foreach val $vals { | 63 foreach val $vals { |
| 64 for {set x 1} {$x<18} {incr x} { | 64 for {set x 1} {$x<16} {incr x} { |
| 65 set part [expr $init + [string range $val 0 [expr $x-1]]] | 65 set part [expr $init + [string range $val 0 [expr $x-1]]] |
| 66 regsub {e\+0} $part {e+} part | |
| 67 regsub {^1e} $part {1.0e} part | |
| 68 | 66 |
| 69 do_test enc4-$i.$j.$k.3.$x { | 67 do_realnum_test enc4-$i.$j.$k.3.$x { |
| 70 sqlite3_reset $S | 68 sqlite3_reset $S |
| 71 sqlite3_bind_text $S 1 $val $x | 69 sqlite3_bind_text $S 1 $val $x |
| 72 sqlite3_step $S | 70 sqlite3_step $S |
| 73 sqlite3_column_text $S 0 | 71 sqlite3_column_text $S 0 |
| 74 } [list $part] | 72 } [list $part] |
| 75 | 73 |
| 76 do_test enc4-$i.$j.$k.4.$x { | 74 do_realnum_test enc4-$i.$j.$k.4.$x { |
| 77 sqlite3_reset $S | 75 sqlite3_reset $S |
| 78 sqlite3_bind_text16 $S 1 [encoding convertto unicode $val] [expr $x*2] | 76 sqlite3_bind_text16 $S 1 [encoding convertto unicode $val] [expr $x*2] |
| 79 sqlite3_step $S | 77 sqlite3_step $S |
| 80 sqlite3_column_text $S 0 | 78 sqlite3_column_text $S 0 |
| 81 } [list $part] | 79 } [list $part] |
| 82 } | 80 } |
| 83 | 81 |
| 84 incr k | 82 incr k |
| 85 } | 83 } |
| 86 | 84 |
| 87 do_test enc4-$i.$j.5 { | 85 do_test enc4-$i.$j.5 { |
| 88 sqlite3_finalize $S | 86 sqlite3_finalize $S |
| 89 } {SQLITE_OK} | 87 } {SQLITE_OK} |
| 90 | 88 |
| 91 incr j | 89 incr j |
| 92 } | 90 } |
| 93 | 91 |
| 94 db close | 92 db close |
| 95 incr i | 93 incr i |
| 96 } | 94 } |
| 97 | 95 |
| 98 file delete -force test.db | 96 forcedelete test.db |
| 99 sqlite3 db test.db | 97 sqlite3 db test.db |
| 100 | 98 |
| 101 do_test enc4-4.1 { | 99 do_test enc4-4.1 { |
| 102 db eval "select 1+1." | 100 db eval "select 1+1." |
| 103 } {2.0} | 101 } {2.0} |
| 104 | 102 |
| 105 do_test enc4-4.2.1 { | 103 do_test enc4-4.2.1 { |
| 106 set S [sqlite3_prepare_v2 db "SELECT 1+1." -1 dummy] | 104 set S [sqlite3_prepare_v2 db "SELECT 1+1." -1 dummy] |
| 107 sqlite3_step $S | 105 sqlite3_step $S |
| 108 sqlite3_column_text $S 0 | 106 sqlite3_column_text $S 0 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 130 sqlite3_column_text $S 0 | 128 sqlite3_column_text $S 0 |
| 131 } {2.0} | 129 } {2.0} |
| 132 | 130 |
| 133 do_test enc4-4.4.2 { | 131 do_test enc4-4.4.2 { |
| 134 sqlite3_finalize $S | 132 sqlite3_finalize $S |
| 135 } {SQLITE_OK} | 133 } {SQLITE_OK} |
| 136 | 134 |
| 137 db close | 135 db close |
| 138 | 136 |
| 139 finish_test | 137 finish_test |
| OLD | NEW |