| Index: third_party/sqlite/sqlite-src-3100200/test/e_blobbytes.test
|
| diff --git a/third_party/sqlite/sqlite-src-3100200/test/e_blobbytes.test b/third_party/sqlite/sqlite-src-3100200/test/e_blobbytes.test
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a6283ab852f9cf10762d5c00ebce1da70c5114b1
|
| --- /dev/null
|
| +++ b/third_party/sqlite/sqlite-src-3100200/test/e_blobbytes.test
|
| @@ -0,0 +1,76 @@
|
| +# 2014 October 30
|
| +#
|
| +# 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.
|
| +#
|
| +#***********************************************************************
|
| +#
|
| +
|
| +set testdir [file dirname $argv0]
|
| +source $testdir/tester.tcl
|
| +set testprefix e_blobbytes
|
| +
|
| +do_execsql_test 1.0 {
|
| + CREATE TABLE q1(r INTEGER PRIMARY KEY, s TEXT);
|
| + WITH d(a, b) AS (
|
| + SELECT 0, ''
|
| + UNION ALL
|
| + SELECT a+1, b||'.' FROM d WHERE a<10000
|
| + )
|
| + INSERT INTO q1 SELECT * FROM d;
|
| +}
|
| +
|
| +
|
| +# EVIDENCE-OF: R-07796-55423 Returns the size in bytes of the BLOB
|
| +# accessible via the successfully opened BLOB handle in its only
|
| +# argument.
|
| +#
|
| +proc check_blob_size {tn rowid bytes} {
|
| + uplevel [list do_test $tn [subst -nocommands {
|
| + sqlite3_blob_open db main q1 s $rowid 0 B
|
| + set res [sqlite3_blob_bytes [set B]]
|
| + sqlite3_blob_close [set B]
|
| + set res
|
| + }] $bytes]
|
| +}
|
| +check_blob_size 1.1 43 43
|
| +check_blob_size 1.2 391 391
|
| +check_blob_size 1.3 6349 6349
|
| +check_blob_size 1.4 2621 2621
|
| +check_blob_size 1.5 7771 7771
|
| +check_blob_size 1.6 7949 7949
|
| +check_blob_size 1.7 4374 4374
|
| +check_blob_size 1.8 2578 2578
|
| +check_blob_size 1.9 7004 7004
|
| +check_blob_size 1.10 2180 2180
|
| +check_blob_size 1.11 3796 3796
|
| +check_blob_size 1.12 7101 7101
|
| +check_blob_size 1.13 7449 7449
|
| +check_blob_size 1.14 7224 7224
|
| +check_blob_size 1.15 3038 3038
|
| +check_blob_size 1.16 1083 1083
|
| +check_blob_size 1.17 5157 5157
|
| +check_blob_size 1.18 6686 6686
|
| +check_blob_size 1.19 6592 6592
|
| +check_blob_size 1.20 0 0
|
| +
|
| +
|
| +# EVIDENCE-OF: R-53088-19343 The incremental blob I/O routines can only
|
| +# read or overwriting existing blob content; they cannot change the size
|
| +# of a blob.
|
| +#
|
| +# Also demonstrated in other e_blobXXX.test files.
|
| +#
|
| +do_test 2.1 {
|
| + sqlite3_blob_open db main q1 s 86 1 B
|
| + list [catch { sqlite3_blob_write $B 86 "1" 1 } msg] $msg
|
| +} {1 SQLITE_ERROR}
|
| +sqlite3_blob_close $B
|
| +
|
| +finish_test
|
| +
|
| +
|
|
|