OLD | NEW |
1 # 2008 June 9 | 1 # 2008 June 9 |
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 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 | 317 |
318 close $wrHandle | 318 close $wrHandle |
319 close $rdHandle | 319 close $rdHandle |
320 } {} | 320 } {} |
321 | 321 |
322 do_test incrblob2-6.2 { | 322 do_test incrblob2-6.2 { |
323 set rdHandle [db incrblob -readonly t1 data 1] | 323 set rdHandle [db incrblob -readonly t1 data 1] |
324 sqlite3_blob_read $rdHandle 0 2 | 324 sqlite3_blob_read $rdHandle 0 2 |
325 } {AB} | 325 } {AB} |
326 | 326 |
| 327 if {$::tcl_platform(pointerSize)>=8} { |
| 328 do_test incrblob2-6.2b { |
| 329 set rc [catch { |
| 330 # Prior to 2015-02-07, the following caused a segfault due to |
| 331 # integer overflow. |
| 332 sqlite3_blob_read $rdHandle 2147483647 2147483647 |
| 333 } errmsg] |
| 334 lappend rc $errmsg |
| 335 } {1 SQLITE_ERROR} |
| 336 } |
| 337 do_test incrblob2-6.2c { |
| 338 set rc [catch { |
| 339 # Prior to 2015-02-07, the following caused a segfault due to |
| 340 # integer overflow. |
| 341 sqlite3_blob_read $rdHandle 2147483647 100 |
| 342 } errmsg] |
| 343 lappend rc $errmsg |
| 344 } {1 SQLITE_ERROR} |
| 345 |
327 do_test incrblob2-6.3 { | 346 do_test incrblob2-6.3 { |
328 set wrHandle [db incrblob t1 data 1] | 347 set wrHandle [db incrblob t1 data 1] |
329 sqlite3_blob_write $wrHandle 0 ZZZZZZZZZZ | 348 sqlite3_blob_write $wrHandle 0 ZZZZZZZZZZ |
330 sqlite3_blob_read $rdHandle 2 4 | 349 sqlite3_blob_read $rdHandle 2 4 |
331 } {ZZZZ} | 350 } {ZZZZ} |
332 | 351 |
| 352 do_test incrblob2-6.3b { |
| 353 set rc [catch { |
| 354 # Prior to 2015-02-07, the following caused a segfault due to |
| 355 # integer overflow. |
| 356 sqlite3_blob_write $wrHandle 2147483647 YYYYYYYYYYYYYYYYYY |
| 357 } errmsg] |
| 358 lappend rc $errmsg |
| 359 } {1 SQLITE_ERROR} |
| 360 do_test incrblob2-6.3c { |
| 361 sqlite3_blob_read $rdHandle 2 4 |
| 362 } {ZZZZ} |
| 363 |
| 364 |
333 do_test incrblob2-6.4 { | 365 do_test incrblob2-6.4 { |
334 close $wrHandle | 366 close $wrHandle |
335 close $rdHandle | 367 close $rdHandle |
336 } {} | 368 } {} |
337 | 369 |
338 sqlite3_memory_highwater 1 | 370 sqlite3_memory_highwater 1 |
339 do_test incrblob2-7.1 { | 371 do_test incrblob2-7.1 { |
340 db eval { | 372 db eval { |
341 CREATE TABLE t2(B BLOB); | 373 CREATE TABLE t2(B BLOB); |
342 INSERT INTO t2 VALUES(zeroblob(10 * 1024 * 1024)); | 374 INSERT INTO t2 VALUES(zeroblob(10 * 1024 * 1024)); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 } {1 {UNIQUE constraint failed: t3.a}} | 441 } {1 {UNIQUE constraint failed: t3.a}} |
410 do_test incrblob2-8.9 { | 442 do_test incrblob2-8.9 { |
411 set rc [catch {sqlite3_blob_read $h 0 20} msg] | 443 set rc [catch {sqlite3_blob_read $h 0 20} msg] |
412 list $rc $msg | 444 list $rc $msg |
413 } {1 SQLITE_ABORT} | 445 } {1 SQLITE_ABORT} |
414 do_test incrblob2-8.X { | 446 do_test incrblob2-8.X { |
415 close $h | 447 close $h |
416 } {} | 448 } {} |
417 | 449 |
418 finish_test | 450 finish_test |
OLD | NEW |