Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Test cases for hex literals. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | hex-literal |
Files: | files | file ages | folders |
SHA1: |
19054339c47448bcdfd1f7be35daa382 |
User & Date: | drh 2014-07-23 01:56:32.016 |
Context
2014-07-23
| ||
01:59 | Reformatting a few test cases for clarity. (check-in: 7e1bbacb11 user: drh tags: hex-literal) | |
01:56 | Test cases for hex literals. (check-in: 19054339c4 user: drh tags: hex-literal) | |
01:26 | Add support for parsing C-style hexadecimal literals. (check-in: 34a1f38b7a user: drh tags: hex-literal) | |
Changes
Changes to src/util.c.
︙ | ︙ | |||
331 332 333 334 335 336 337 | if( *z=='-' ){ sign = -1; z+=incr; }else if( *z=='+' ){ z+=incr; } #ifndef SQLITE_OMIT_HEX_INTEGER | | | 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 | if( *z=='-' ){ sign = -1; z+=incr; }else if( *z=='+' ){ z+=incr; } #ifndef SQLITE_OMIT_HEX_INTEGER else if( *z=='0' && &z[incr*2]<zEnd && (z[incr]=='x' || z[incr]=='X') && sqlite3Isxdigit(z[incr*2]) ){ result = 0.0; for(z += incr*2; z<zEnd && sqlite3Isxdigit(z[0]); z += incr){ result = result*16.0 + sqlite3HexToInt(z[0]); |
︙ | ︙ |
Added test/hexlit.test.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | # 2014-07-23 # # 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 tests for hexadecimal literals set testdir [file dirname $argv0] source $testdir/tester.tcl proc hexlit1 {tnum val ans} { do_execsql_test hexlit-$tnum "SELECT $val" $ans } hexlit1 100 0x0 0 hexlit1 101 0x0000000000000000000000000000000000000000000001 1 hexlit1 102 0x2 2 hexlit1 103 0x4 4 hexlit1 104 0x8 8 hexlit1 105 0x00000000000000000000000000000000000000000000010 16 hexlit1 103 0x20 32 hexlit1 106 0x40 64 hexlit1 107 0x80 128 hexlit1 108 0x100 256 hexlit1 109 0x200 512 hexlit1 110 0X400 1024 hexlit1 111 0x800 2048 hexlit1 112 0x1000 4096 hexlit1 113 0x2000 8192 hexlit1 114 0x4000 16384 hexlit1 115 0x8000 32768 hexlit1 116 0x10000 65536 hexlit1 117 0x20000 131072 hexlit1 118 0x40000 262144 hexlit1 119 0x80000 524288 hexlit1 120 0x100000 1048576 hexlit1 121 0x200000 2097152 hexlit1 122 0x400000 4194304 hexlit1 123 0x800000 8388608 hexlit1 124 0x1000000 16777216 hexlit1 125 0x2000000 33554432 hexlit1 126 0x4000000 67108864 hexlit1 127 0x8000000 134217728 hexlit1 128 0x10000000 268435456 hexlit1 129 0x20000000 536870912 hexlit1 130 0x40000000 1073741824 hexlit1 131 0x80000000 2147483648 hexlit1 132 0x100000000 4294967296 hexlit1 133 0x200000000 8589934592 hexlit1 134 0x400000000 17179869184 hexlit1 135 0x800000000 34359738368 hexlit1 136 0x1000000000 68719476736 hexlit1 137 0x2000000000 137438953472 hexlit1 138 0x4000000000 274877906944 hexlit1 139 0x8000000000 549755813888 hexlit1 140 0x10000000000 1099511627776 hexlit1 141 0x20000000000 2199023255552 hexlit1 142 0x40000000000 4398046511104 hexlit1 143 0x80000000000 8796093022208 hexlit1 144 0x100000000000 17592186044416 hexlit1 145 0x200000000000 35184372088832 hexlit1 146 0x400000000000 70368744177664 hexlit1 147 0x800000000000 140737488355328 hexlit1 148 0x1000000000000 281474976710656 hexlit1 149 0x2000000000000 562949953421312 hexlit1 150 0x4000000000000 1125899906842624 hexlit1 151 0x8000000000000 2251799813685248 hexlit1 152 0x10000000000000 4503599627370496 hexlit1 153 0x20000000000000 9007199254740992 hexlit1 154 0x40000000000000 18014398509481984 hexlit1 155 0x80000000000000 36028797018963968 hexlit1 156 0x100000000000000 72057594037927936 hexlit1 157 0x200000000000000 144115188075855872 hexlit1 158 0x400000000000000 288230376151711744 hexlit1 159 0x800000000000000 576460752303423488 hexlit1 160 0X1000000000000000 1152921504606846976 hexlit1 161 0x2000000000000000 2305843009213693952 hexlit1 162 0X4000000000000000 4611686018427387904 hexlit1 163 0x8000000000000000 -9223372036854775808 hexlit1 200 0x001 1 hexlit1 201 0X002 2 hexlit1 202 0x003 3 hexlit1 203 0X004 4 hexlit1 204 0x005 5 hexlit1 205 0X006 6 hexlit1 206 0x007 7 hexlit1 207 0X008 8 hexlit1 208 0x009 9 hexlit1 209 0x00a 10 hexlit1 210 0x00A 10 hexlit1 211 0x00b 11 hexlit1 212 0x00B 11 hexlit1 213 0x00c 12 hexlit1 214 0x00C 12 hexlit1 215 0x00d 13 hexlit1 216 0x00D 13 hexlit1 217 0x00e 14 hexlit1 218 0x00E 14 hexlit1 219 0x00f 15 hexlit1 220 0x00F 15 proc hexlit2 {tnum hex ans} { do_execsql_test hexlit-$tnum "SELECT printf('%7e',CAST($hex AS real))" $ans } hexlit2 300 0x1 1.000000e+00 hexlit2 301 0x10 1.600000e+01 hexlit2 302 0x100 2.560000e+02 hexlit2 303 0x1000 4.096000e+03 hexlit2 304 0x10000 6.553600e+04 hexlit2 305 0x100000 1.048576e+06 hexlit2 306 0x1000000 1.677722e+07 hexlit2 307 0x10000000 2.684355e+08 hexlit2 308 0x100000000 4.294967e+09 hexlit2 309 0x1000000000 6.871948e+10 hexlit2 310 0x10000000000 1.099512e+12 hexlit2 311 0x100000000000 1.759219e+13 hexlit2 312 0x1000000000000 2.814750e+14 hexlit2 313 0x10000000000000 4.503600e+15 hexlit2 314 0x100000000000000 7.205759e+16 hexlit2 315 0x1000000000000000 1.152922e+18 hexlit2 316 0x10000000000000000 1.844674e+19 hexlit2 317 0x100000000000000000 2.951479e+20 hexlit2 318 0x1000000000000000000 4.722366e+21 hexlit2 319 0x10000000000000000000 7.555786e+22 hexlit2 320 0x100000000000000000000 1.208926e+24 hexlit2 321 0x1000000000000000000000 1.934281e+25 hexlit2 322 0x10000000000000000000000 3.094850e+26 hexlit2 323 0x100000000000000000000000 4.951760e+27 hexlit2 324 0x1000000000000000000000000 7.922816e+28 hexlit2 325 0x10000000000000000000000000 1.267651e+30 hexlit2 326 0x100000000000000000000000000 2.028241e+31 hexlit2 327 0x1000000000000000000000000000 3.245186e+32 hexlit2 328 0x10000000000000000000000000000 5.192297e+33 hexlit2 329 0x100000000000000000000000000000 8.307675e+34 hexlit2 400 0x7fffffffffffffff 9.223372e+18 hexlit2 401 0x8000000000000000 -9.223372e+18 hexlit2 402 0xffffffffffffffff -1.000000e+00 hexlit2 403 0x10000000000000000 1.844674e+19 finish_test |