diff options
author | Hans-Christoph Steiner <hans@eds.org> | 2012-09-20 18:34:38 -0400 |
---|---|---|
committer | Hans-Christoph Steiner <hans@eds.org> | 2012-09-20 18:34:38 -0400 |
commit | 487e15dc239ccdb3344d1c99ce120e872bab4a74 (patch) | |
tree | c986d492f6092ca7b4401d91515f74daed17fae2 /test/incrblob4.test | |
parent | 7bb481fda9ecb134804b49c2ce77ca28f7eea583 (diff) |
Imported Upstream version 2.0.6
Diffstat (limited to 'test/incrblob4.test')
-rw-r--r-- | test/incrblob4.test | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/test/incrblob4.test b/test/incrblob4.test new file mode 100644 index 0000000..a96356b --- /dev/null +++ b/test/incrblob4.test @@ -0,0 +1,90 @@ +# 2012 March 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. +# +#*********************************************************************** +# +# +set testdir [file dirname $argv0] +source $testdir/tester.tcl +ifcapable {!incrblob} { finish_test ; return } +set testprefix incrblob4 + +proc create_t1 {} { + execsql { + PRAGMA page_size = 1024; + CREATE TABLE t1(k INTEGER PRIMARY KEY, v); + } +} + +proc populate_t1 {} { + set data [list a b c d e f g h i j k l m n o p q r s t u v w x y z] + foreach d $data { + set blob [string repeat $d 900] + execsql { INSERT INTO t1(v) VALUES($blob) } + } +} + + +do_test 1.1 { + create_t1 + populate_t1 +} {} + +do_test 1.2 { + set blob [db incrblob t1 v 5] + read $blob 10 +} {eeeeeeeeee} + +do_test 1.3 { + execsql { DELETE FROM t1 } + populate_t1 +} {} + + + +do_test 2.1 { + reset_db + create_t1 + populate_t1 +} {} + +do_test 2.2 { + set blob [db incrblob t1 v 10] + read $blob 10 +} {jjjjjjjjjj} + +do_test 2.3 { + set new [string repeat % 900] + execsql { DELETE FROM t1 WHERE k=10 } + execsql { DELETE FROM t1 WHERE k=9 } + execsql { INSERT INTO t1(v) VALUES($new) } +} {} + + + +do_test 3.1 { + reset_db + create_t1 + populate_t1 +} {} + +do_test 3.2 { + set blob [db incrblob t1 v 20] + read $blob 10 +} {tttttttttt} + +do_test 3.3 { + set new [string repeat % 900] + execsql { UPDATE t1 SET v = $new WHERE k = 20 } + execsql { DELETE FROM t1 WHERE k=19 } + execsql { INSERT INTO t1(v) VALUES($new) } +} {} + +finish_test + |