Annotation of embedaddon/sqlite3/test/tkt2332.test, revision 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>