Annotation of embedaddon/sqlite3/test/bindxfer.test, revision 1.1
1.1 ! misho 1: # 2005 April 21
! 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: # This file implements regression tests for SQLite library. The
! 12: # focus of this script testing the sqlite_transfer_bindings() API.
! 13: #
! 14: # $Id: bindxfer.test,v 1.9 2009/04/17 11:56:28 drh Exp $
! 15: #
! 16:
! 17: set testdir [file dirname $argv0]
! 18: source $testdir/tester.tcl
! 19:
! 20: proc sqlite_step {stmt VALS COLS} {
! 21: upvar #0 $VALS vals
! 22: upvar #0 $COLS cols
! 23: set vals [list]
! 24: set cols [list]
! 25:
! 26: set rc [sqlite3_step $stmt]
! 27: for {set i 0} {$i < [sqlite3_column_count $stmt]} {incr i} {
! 28: lappend cols [sqlite3_column_name $stmt $i]
! 29: }
! 30: for {set i 0} {$i < [sqlite3_data_count $stmt]} {incr i} {
! 31: lappend vals [sqlite3_column_text $stmt $i]
! 32: }
! 33:
! 34: return $rc
! 35: }
! 36:
! 37: do_test bindxfer-1.1 {
! 38: set DB [sqlite3_connection_pointer db]
! 39: execsql {CREATE TABLE t1(a,b,c);}
! 40: set VM1 [sqlite3_prepare $DB {SELECT ?, ?, ?} -1 TAIL]
! 41: set TAIL
! 42: } {}
! 43: do_test bindxfer-1.2 {
! 44: sqlite3_bind_parameter_count $VM1
! 45: } 3
! 46: do_test bindxfer-1.3 {
! 47: set VM2 [sqlite3_prepare $DB {SELECT ?, ?, ?} -1 TAIL]
! 48: set TAIL
! 49: } {}
! 50: do_test bindxfer-1.4 {
! 51: sqlite3_bind_parameter_count $VM2
! 52: } 3
! 53: ifcapable deprecated {
! 54: do_test bindxfer-1.5 {
! 55: sqlite_bind $VM1 1 one normal
! 56: set sqlite_static_bind_value two
! 57: sqlite_bind $VM1 2 {} static
! 58: sqlite_bind $VM1 3 {} null
! 59: sqlite3_transfer_bindings $VM1 $VM2
! 60: sqlite_step $VM1 VALUES COLNAMES
! 61: } SQLITE_ROW
! 62: do_test bindxfer-1.6 {
! 63: set VALUES
! 64: } {{} {} {}}
! 65: do_test bindxfer-1.7 {
! 66: sqlite_step $VM2 VALUES COLNAMES
! 67: } SQLITE_ROW
! 68: do_test bindxfer-1.8 {
! 69: set VALUES
! 70: } {one two {}}
! 71: }
! 72: catch {sqlite3_finalize $VM1}
! 73: catch {sqlite3_finalize $VM2}
! 74:
! 75:
! 76: finish_test
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>