Annotation of embedaddon/sqlite3/test/tkt2332.test, revision 1.1.1.1

1.1       misho       1: # 2007 May 3
                      2: #
                      3: # The author disclaims copyright to this source code.  In place of
                      4: # a legal notice, here is a blessing:
                      5: #
                      6: #    May you do good and not evil.
                      7: #    May you find forgiveness for yourself and forgive others.
                      8: #    May you share freely, never taking more than you give.
                      9: #
                     10: #***********************************************************************
                     11: #
                     12: # $Id: tkt2332.test,v 1.4 2007/09/12 17:01:45 danielk1977 Exp $
                     13: #
                     14: 
                     15: set testdir [file dirname $argv0]
                     16: source $testdir/tester.tcl
                     17: 
                     18: ifcapable !incrblob||!tclvar {
                     19:   finish_test
                     20:   return
                     21: }
                     22: 
                     23: do_test tkt2332.1 {
                     24:   execsql {
                     25:     CREATE TABLE blobs (k INTEGER PRIMARY KEY, v BLOB);
                     26:     PRAGMA cache_size = 100;
                     27:   }
                     28: } {}
                     29: 
                     30: set ::iKey 1
                     31: foreach Len [list 10000 100000 1000000] {
                     32:   do_test tkt2332.$Len.1 {
                     33:     set val "[expr rand()][expr rand()][expr rand()][expr rand()][expr rand()]"
                     34:     set ::blobstr [string range \
                     35:       [string repeat $val [expr ($Len/[string length $val])+1]] 0 [expr $Len-1]
                     36:     ]
                     37: 
                     38:     db eval { INSERT INTO blobs VALUES($::iKey, zeroblob($Len)) }
                     39:   } {}
                     40: 
                     41:   do_test tkt2332.$Len.2 {
                     42:     execsql {
                     43:       SELECT length(v) FROM blobs WHERE k = $::iKey;
                     44:     }
                     45:   } $Len
                     46: 
                     47:   do_test tkt2332.$Len.3 {
                     48:     set ::fd [db incrblob blobs v $::iKey]
                     49:     puts -nonewline $::fd $::blobstr
                     50:     close $::fd
                     51:   } {}
                     52: 
                     53:   do_test tkt2332.$Len.4 {
                     54:     execsql { SELECT length(v) FROM blobs WHERE k = $::iKey; }
                     55:   } $Len
                     56: 
                     57:   do_test tkt2332.$Len.5 {
                     58:     lindex [execsql {SELECT v FROM blobs WHERE k = $::iKey}] 0
                     59:   } $::blobstr
                     60: 
                     61:   incr ::iKey
                     62: }
                     63: 
                     64: # Free memory:
                     65: unset ::blobstr
                     66: 
                     67: finish_test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>