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>