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