Improved test coverage of tclsqlite.c (CVS 1761)
FossilOrigin-Name: 008e57dcd5e16886ed732fe1e9797a3c00e8c579
This commit is contained in:
parent
b97759ed11
commit
0f14e2ebed
20
manifest
20
manifest
@ -1,5 +1,5 @@
|
||||
C Add\stesting\sfor\ssqlite3_trace()\sand\sfix\sa\sbug.\s(CVS\s1760)
|
||||
D 2004-06-29T11:26:59
|
||||
C Improved\stest\scoverage\sof\stclsqlite.c\s(CVS\s1761)
|
||||
D 2004-06-29T12:39:08
|
||||
F Makefile.in cb7a9889c38723f72b2506c4236ff30a05ff172b
|
||||
F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457
|
||||
F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
|
||||
@ -61,7 +61,7 @@ F src/shell.c 24b641700c9d90f361fcfa4f432c5b4aff704e6d
|
||||
F src/sqlite.h.in b70fded2bdfeaddfb06adea3888118b722975136
|
||||
F src/sqliteInt.h 4f8d44f04cc51cb421bf3c195247353a5be2e98f
|
||||
F src/table.c af14284fa36c8d41f6829e3f2819dce07d3e2de2
|
||||
F src/tclsqlite.c a3b2acfe61677d9b49b199bfe043cc212d747412
|
||||
F src/tclsqlite.c 7648310ff0034213f3e58e7272328ed306507e9f
|
||||
F src/test1.c 0eca68f6e70069aad7ad0fd91fda886926646786
|
||||
F src/test2.c dafd8bd314a554bf376c6d3a8c83fd69219f5a40
|
||||
F src/test3.c bacc42bf41fa04d6faf7dd104b595b8bafb9aec9
|
||||
@ -84,7 +84,7 @@ F test/all.test d591e074013248176402a16a0fb6fc82d241bad5
|
||||
F test/attach.test 3acdffccbf5f78b07746771b9490758718e28856
|
||||
F test/attach2.test 3cd1d4a69e0ec307d0b68a44a96c9c8e1e253d65
|
||||
F test/attach3.test c4cc0b806783ce3d860af6b80c947f93ffb14270
|
||||
F test/auth.test a211eab0542ec024b578d771b09242dd9bb1aba3
|
||||
F test/auth.test 23d1dbf2235635409fee36535a344edc7494aea2
|
||||
F test/bigfile.test a1101b46528ad7282fb9b323d25da18672a3bd0a
|
||||
F test/bigrow.test 8ab252dba108f12ad64e337b0f2ff31a807ac578
|
||||
F test/bind.test ca031e902f63fb7d69545b4a47b0c7aea8747ffe
|
||||
@ -114,7 +114,7 @@ F test/enc3.test 315f302ed9a6042be76710eb6aa70e4551e9aa73
|
||||
F test/expr.test b4e945265c4c697bf5213b72558914ba10a989cc
|
||||
F test/fkey1.test d65c824459916249bee501532d6154ddab0b5db7
|
||||
F test/func.test db369afc9e77c4b40863e55497c8f0e449a43e79
|
||||
F test/hook.test c4102c672d67f8fb60ea459842805abcba69a747
|
||||
F test/hook.test f8605cde4c77b2c6a4a73723bf6c507796a64dda
|
||||
F test/in.test b92a2df9162e1cbd33c6449a29a05e6955b1741a
|
||||
F test/index.test b6941dd532815f278042b85f79b1a6dc16c4d729
|
||||
F test/insert.test ebbab63db4ad69395a058514bccb3cdb0a029d48
|
||||
@ -144,7 +144,7 @@ F test/pager.test 059cc5c58d3b5a851343dff8c56cf7286425d03a
|
||||
F test/pager2.test 55469c7c1c1a54d6b32d7b3cc99001e90101a1ce
|
||||
F test/pragma.test 212d810e02a51c0ff9784a19d55e35d23382005d
|
||||
F test/printf.test 1eb584b7272d1abdfe117b2ef7cf3376ae8e4e06
|
||||
F test/progress.test 7542a6ac7894a1b7730c1f9a27f3f8b9388a4d25 x
|
||||
F test/progress.test 76c722f090b1ccb575e7e4e203a71608c5763beb x
|
||||
F test/quick.test 4c0b3eabe2e0e606622d63d7d61ef6efb3ce156b
|
||||
F test/quote.test 08f23385c685d3dc7914ec760d492cacea7f6e3d
|
||||
F test/rowid.test b3d059f5c8d8874fa1c31030e0636f67405d20ea
|
||||
@ -158,7 +158,7 @@ F test/sort.test 30fb9ea782a78da849a562d53233ec62d421bf61
|
||||
F test/subselect.test f0fea8cf9f386d416d64d152e3c65f9116d0f50f
|
||||
F test/table.test b6d07f04c4157d1f2a37fb7febe36b250d468e31
|
||||
F test/tableapi.test b21ab097e87a5484bb61029e69e1a4e5c5e65ede
|
||||
F test/tclsqlite.test 2517b10ee2c806fb700548f54540aec7d62ed14a
|
||||
F test/tclsqlite.test 7a773d270a2c35af1d0295c18a9ee26859ddbf1f
|
||||
F test/temptable.test 63a16e3ad19adf073cfbcdf7624c92ac5236522c
|
||||
F test/tester.tcl f36cc22d0532725073ca78272d7834d56dceb6d9
|
||||
F test/thread1.test 776c9e459b75ba905193b351926ac4019b049f35
|
||||
@ -232,7 +232,7 @@ F www/tclsqlite.tcl 19191cf2a1010eaeff74c51d83fd5f5a4d899075
|
||||
F www/vdbe.tcl 59288db1ac5c0616296b26dce071c36cb611dfe9
|
||||
F www/version3.tcl 563ba3ac02f64da27ab17f3edbe8e56bfd0293fb
|
||||
F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4
|
||||
P 20db8124ace5fbfa99035ae28e5c98f4c5fcde00
|
||||
R d22897a28d331f978222e91e9a697838
|
||||
P 7a15391079ae9ce5360fa13e8779c8872885e789
|
||||
R 6d1cc0ec8c79803128be2f6b6916c2d6
|
||||
U drh
|
||||
Z 73e3d176ba77297dc04534c51f5da9eb
|
||||
Z 724b6a206741f085ef273c2e8d104b2e
|
||||
|
@ -1 +1 @@
|
||||
7a15391079ae9ce5360fa13e8779c8872885e789
|
||||
008e57dcd5e16886ed732fe1e9797a3c00e8c579
|
167
src/tclsqlite.c
167
src/tclsqlite.c
@ -11,7 +11,7 @@
|
||||
*************************************************************************
|
||||
** A TCL Interface to SQLite
|
||||
**
|
||||
** $Id: tclsqlite.c,v 1.91 2004/06/29 11:26:59 drh Exp $
|
||||
** $Id: tclsqlite.c,v 1.92 2004/06/29 12:39:08 drh Exp $
|
||||
*/
|
||||
#ifndef NO_TCL /* Omit this whole file if TCL is unavailable */
|
||||
|
||||
@ -391,22 +391,21 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){
|
||||
int choice;
|
||||
int rc = TCL_OK;
|
||||
static const char *DB_strs[] = {
|
||||
"authorizer", "busy", "changes",
|
||||
"close", "commit_hook", "complete",
|
||||
"errorcode", "eval", "function",
|
||||
"last_insert_rowid", "onecolumn",
|
||||
"progress", "rekey", "timeout",
|
||||
"trace", "collate", "collation_needed",
|
||||
"total_changes", 0
|
||||
"authorizer", "busy", "changes",
|
||||
"close", "collate", "collation_needed",
|
||||
"commit_hook", "complete", "errorcode",
|
||||
"eval", "function", "last_insert_rowid",
|
||||
"onecolumn", "progress", "rekey",
|
||||
"timeout", "total_changes", "trace",
|
||||
0
|
||||
};
|
||||
enum DB_enum {
|
||||
DB_AUTHORIZER, DB_BUSY, DB_CHANGES,
|
||||
DB_CLOSE, DB_COMMIT_HOOK, DB_COMPLETE,
|
||||
DB_ERRORCODE, DB_EVAL, DB_FUNCTION,
|
||||
DB_LAST_INSERT_ROWID, DB_ONECOLUMN,
|
||||
DB_PROGRESS, DB_REKEY, DB_TIMEOUT,
|
||||
DB_TRACE, DB_COLLATE, DB_COLLATION_NEEDED,
|
||||
DB_TOTAL_CHANGES
|
||||
DB_AUTHORIZER, DB_BUSY, DB_CHANGES,
|
||||
DB_CLOSE, DB_COLLATE, DB_COLLATION_NEEDED,
|
||||
DB_COMMIT_HOOK, DB_COMPLETE, DB_ERRORCODE,
|
||||
DB_EVAL, DB_FUNCTION, DB_LAST_INSERT_ROWID,
|
||||
DB_ONECOLUMN, DB_PROGRESS, DB_REKEY,
|
||||
DB_TIMEOUT, DB_TOTAL_CHANGES, DB_TRACE,
|
||||
};
|
||||
|
||||
if( objc<2 ){
|
||||
@ -440,6 +439,7 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){
|
||||
case DB_AUTHORIZER: {
|
||||
if( objc>3 ){
|
||||
Tcl_WrongNumArgs(interp, 2, objv, "?CALLBACK?");
|
||||
return TCL_ERROR;
|
||||
}else if( objc==2 ){
|
||||
if( pDb->zAuth ){
|
||||
Tcl_AppendResult(interp, pDb->zAuth, 0);
|
||||
@ -583,6 +583,7 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){
|
||||
case DB_COMMIT_HOOK: {
|
||||
if( objc>3 ){
|
||||
Tcl_WrongNumArgs(interp, 2, objv, "?CALLBACK?");
|
||||
return TCL_ERROR;
|
||||
}else if( objc==2 ){
|
||||
if( pDb->zCommit ){
|
||||
Tcl_AppendResult(interp, pDb->zCommit, 0);
|
||||
@ -610,6 +611,57 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
** $db collate NAME SCRIPT
|
||||
**
|
||||
** Create a new SQL collation function called NAME. Whenever
|
||||
** that function is called, invoke SCRIPT to evaluate the function.
|
||||
*/
|
||||
case DB_COLLATE: {
|
||||
SqlCollate *pCollate;
|
||||
char *zName;
|
||||
char *zScript;
|
||||
int nScript;
|
||||
if( objc!=4 ){
|
||||
Tcl_WrongNumArgs(interp, 2, objv, "NAME SCRIPT");
|
||||
return TCL_ERROR;
|
||||
}
|
||||
zName = Tcl_GetStringFromObj(objv[2], 0);
|
||||
zScript = Tcl_GetStringFromObj(objv[3], &nScript);
|
||||
pCollate = (SqlCollate*)Tcl_Alloc( sizeof(*pCollate) + nScript + 1 );
|
||||
if( pCollate==0 ) return TCL_ERROR;
|
||||
pCollate->interp = interp;
|
||||
pCollate->pNext = pDb->pCollate;
|
||||
pCollate->zScript = (char*)&pCollate[1];
|
||||
pDb->pCollate = pCollate;
|
||||
strcpy(pCollate->zScript, zScript);
|
||||
if( sqlite3_create_collation(pDb->db, zName, SQLITE_UTF8,
|
||||
pCollate, tclSqlCollate) ){
|
||||
return TCL_ERROR;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
** $db collation_needed SCRIPT
|
||||
**
|
||||
** Create a new SQL collation function called NAME. Whenever
|
||||
** that function is called, invoke SCRIPT to evaluate the function.
|
||||
*/
|
||||
case DB_COLLATION_NEEDED: {
|
||||
if( objc!=3 ){
|
||||
Tcl_WrongNumArgs(interp, 2, objv, "SCRIPT");
|
||||
return TCL_ERROR;
|
||||
}
|
||||
if( pDb->pCollateNeeded ){
|
||||
Tcl_DecrRefCount(pDb->pCollateNeeded);
|
||||
}
|
||||
pDb->pCollateNeeded = Tcl_DuplicateObj(objv[2]);
|
||||
Tcl_IncrRefCount(pDb->pCollateNeeded);
|
||||
sqlite3_collation_needed(pDb->db, pDb, tclCollateNeeded);
|
||||
break;
|
||||
}
|
||||
|
||||
/* $db complete SQL
|
||||
**
|
||||
** Return TRUE if SQL is a complete SQL statement. Return FALSE if
|
||||
@ -759,6 +811,7 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){
|
||||
pFunc->interp = interp;
|
||||
pFunc->pNext = pDb->pFunc;
|
||||
pFunc->zScript = (char*)&pFunc[1];
|
||||
pDb->pFunc = pFunc;
|
||||
strcpy(pFunc->zScript, zScript);
|
||||
sqlite3_create_function(pDb->db, zName, -1, SQLITE_UTF8,
|
||||
pFunc, tclSqlFunc, 0, 0);
|
||||
@ -849,6 +902,23 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
** $db total_changes
|
||||
**
|
||||
** Return the number of rows that were modified, inserted, or deleted
|
||||
** since the database handle was created.
|
||||
*/
|
||||
case DB_TOTAL_CHANGES: {
|
||||
Tcl_Obj *pResult;
|
||||
if( objc!=2 ){
|
||||
Tcl_WrongNumArgs(interp, 2, objv, "");
|
||||
return TCL_ERROR;
|
||||
}
|
||||
pResult = Tcl_GetObjResult(interp);
|
||||
Tcl_SetIntObj(pResult, sqlite3_total_changes(pDb->db));
|
||||
break;
|
||||
}
|
||||
|
||||
/* $db trace ?CALLBACK?
|
||||
**
|
||||
** Make arrangements to invoke the CALLBACK routine for each SQL statement
|
||||
@ -886,73 +956,6 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
** $db collate NAME SCRIPT
|
||||
**
|
||||
** Create a new SQL collation function called NAME. Whenever
|
||||
** that function is called, invoke SCRIPT to evaluate the function.
|
||||
*/
|
||||
case DB_COLLATE: {
|
||||
SqlCollate *pCollate;
|
||||
char *zName;
|
||||
char *zScript;
|
||||
int nScript;
|
||||
if( objc!=4 ){
|
||||
Tcl_WrongNumArgs(interp, 2, objv, "NAME SCRIPT");
|
||||
return TCL_ERROR;
|
||||
}
|
||||
zName = Tcl_GetStringFromObj(objv[2], 0);
|
||||
zScript = Tcl_GetStringFromObj(objv[3], &nScript);
|
||||
pCollate = (SqlCollate*)Tcl_Alloc( sizeof(*pCollate) + nScript + 1 );
|
||||
if( pCollate==0 ) return TCL_ERROR;
|
||||
pCollate->interp = interp;
|
||||
pCollate->pNext = pDb->pCollate;
|
||||
pCollate->zScript = (char*)&pCollate[1];
|
||||
strcpy(pCollate->zScript, zScript);
|
||||
if( sqlite3_create_collation(pDb->db, zName, SQLITE_UTF8,
|
||||
pCollate, tclSqlCollate) ){
|
||||
return TCL_ERROR;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
** $db collate_needed SCRIPT
|
||||
**
|
||||
** Create a new SQL collation function called NAME. Whenever
|
||||
** that function is called, invoke SCRIPT to evaluate the function.
|
||||
*/
|
||||
case DB_COLLATION_NEEDED: {
|
||||
if( objc!=3 ){
|
||||
Tcl_WrongNumArgs(interp, 2, objv, "SCRIPT");
|
||||
return TCL_ERROR;
|
||||
}
|
||||
if( pDb->pCollateNeeded ){
|
||||
Tcl_DecrRefCount(pDb->pCollateNeeded);
|
||||
}
|
||||
pDb->pCollateNeeded = Tcl_DuplicateObj(objv[2]);
|
||||
Tcl_IncrRefCount(pDb->pCollateNeeded);
|
||||
sqlite3_collation_needed(pDb->db, pDb, tclCollateNeeded);
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
** $db total_changes
|
||||
**
|
||||
** Return the number of rows that were modified, inserted, or deleted
|
||||
** since the database handle was created.
|
||||
*/
|
||||
case DB_TOTAL_CHANGES: {
|
||||
Tcl_Obj *pResult;
|
||||
if( objc!=2 ){
|
||||
Tcl_WrongNumArgs(interp, 2, objv, "");
|
||||
return TCL_ERROR;
|
||||
}
|
||||
pResult = Tcl_GetObjResult(interp);
|
||||
Tcl_SetIntObj(pResult, sqlite3_total_changes(pDb->db));
|
||||
break;
|
||||
}
|
||||
|
||||
} /* End of the SWITCH statement */
|
||||
return rc;
|
||||
}
|
||||
|
@ -12,7 +12,7 @@
|
||||
# focus of this script is testing the ATTACH and DETACH commands
|
||||
# and related functionality.
|
||||
#
|
||||
# $Id: auth.test,v 1.15 2004/06/19 00:16:31 drh Exp $
|
||||
# $Id: auth.test,v 1.16 2004/06/29 12:39:08 drh Exp $
|
||||
#
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
@ -36,6 +36,9 @@ do_test auth-1.1.1 {
|
||||
do_test auth-1.1.2 {
|
||||
db errorcode
|
||||
} {23}
|
||||
do_test auth-1.1.3 {
|
||||
db authorizer
|
||||
} {::auth}
|
||||
do_test auth-1.2 {
|
||||
execsql {SELECT name FROM sqlite_master}
|
||||
} {}
|
||||
|
@ -15,7 +15,7 @@
|
||||
#
|
||||
# sqlite_commit_hook
|
||||
#
|
||||
# $Id: hook.test,v 1.4 2004/05/31 08:26:49 danielk1977 Exp $
|
||||
# $Id: hook.test,v 1.5 2004/06/29 12:39:08 drh Exp $
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
@ -79,5 +79,15 @@ do_test hook-3.8 {
|
||||
execsql {SELECT * FROM t2}
|
||||
} {1 2 2 3 3 4 4 5 5 6}
|
||||
|
||||
# Test turnning off the commit hook
|
||||
#
|
||||
do_test hook-3.9 {
|
||||
db commit_hook {}
|
||||
set ::commit_cnt {}
|
||||
execsql {
|
||||
INSERT INTO t2 VALUES(7,8);
|
||||
}
|
||||
set ::commit_cnt
|
||||
} {}
|
||||
|
||||
finish_test
|
||||
|
@ -11,7 +11,7 @@
|
||||
# This file implements regression tests for SQLite library. The
|
||||
# focus of this file is testing the 'progress callback'.
|
||||
#
|
||||
# $Id: progress.test,v 1.2 2004/05/31 08:26:50 danielk1977 Exp $
|
||||
# $Id: progress.test,v 1.3 2004/06/29 12:39:08 drh Exp $
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
@ -44,6 +44,13 @@ do_test progress-1.0 {
|
||||
}
|
||||
expr $counter > 1
|
||||
} 1
|
||||
do_test progress-1.0.1 {
|
||||
db progress
|
||||
} {::namespace inscope :: {incr counter} ; expr 0}
|
||||
do_test progress-1.0.2 {
|
||||
set v [catch {db progress xyz bogus} msg]
|
||||
lappend v $msg
|
||||
} {1 {expected integer but got "xyz"}}
|
||||
|
||||
# Test that the query is abandoned when the progress callback returns non-zero
|
||||
do_test progress1.1 {
|
||||
|
@ -15,7 +15,7 @@
|
||||
# interface is pretty well tested. This file contains some addition
|
||||
# tests for fringe issues that the main test suite does not cover.
|
||||
#
|
||||
# $Id: tclsqlite.test,v 1.25 2004/06/21 06:50:29 danielk1977 Exp $
|
||||
# $Id: tclsqlite.test,v 1.26 2004/06/29 12:39:08 drh Exp $
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
@ -34,7 +34,7 @@ do_test tcl-1.1 {
|
||||
do_test tcl-1.2 {
|
||||
set v [catch {db bogus} msg]
|
||||
lappend v $msg
|
||||
} {1 {bad option "bogus": must be authorizer, busy, changes, close, commit_hook, complete, errorcode, eval, function, last_insert_rowid, onecolumn, progress, rekey, timeout, trace, collate, collation_needed, or total_changes}}
|
||||
} {1 {bad option "bogus": must be authorizer, busy, changes, close, collate, collation_needed, commit_hook, complete, errorcode, eval, function, last_insert_rowid, onecolumn, progress, rekey, timeout, total_changes, or trace}}
|
||||
do_test tcl-1.3 {
|
||||
execsql {CREATE TABLE t1(a int, b int)}
|
||||
execsql {INSERT INTO t1 VALUES(10,20)}
|
||||
@ -70,6 +70,67 @@ do_test tcl-1.6 {
|
||||
regsub {:.*$} $msg {} msg
|
||||
lappend v $msg
|
||||
} {1 {syntax error in expression "x*"}}
|
||||
do_test tcl-1.7 {
|
||||
set v [catch {db} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db SUBCOMMAND ..."}}
|
||||
do_test tcl-1.8 {
|
||||
set v [catch {db authorizer 1 2 3} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db authorizer ?CALLBACK?"}}
|
||||
do_test tcl-1.9 {
|
||||
set v [catch {db busy 1 2 3} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db busy CALLBACK"}}
|
||||
do_test tcl-1.10 {
|
||||
set v [catch {db progress 1} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db progress N CALLBACK"}}
|
||||
do_test tcl-1.11 {
|
||||
set v [catch {db changes xyz} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db changes "}}
|
||||
do_test tcl-1.12 {
|
||||
set v [catch {db commit_hook a b c} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db commit_hook ?CALLBACK?"}}
|
||||
do_test tcl-1.13 {
|
||||
set v [catch {db complete} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db complete SQL"}}
|
||||
do_test tcl-1.14 {
|
||||
set v [catch {db eval} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db eval SQL ?ARRAY-NAME CODE?"}}
|
||||
do_test tcl-1.15 {
|
||||
set v [catch {db function} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db function NAME SCRIPT"}}
|
||||
do_test tcl-1.14 {
|
||||
set v [catch {db last_insert_rowid xyz} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db last_insert_rowid "}}
|
||||
do_test tcl-1.15 {
|
||||
set v [catch {db rekey} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db rekey KEY"}}
|
||||
do_test tcl-1.16 {
|
||||
set v [catch {db timeout} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db timeout MILLISECONDS"}}
|
||||
do_test tcl-1.17 {
|
||||
set v [catch {db collate} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db collate NAME SCRIPT"}}
|
||||
do_test tcl-1.18 {
|
||||
set v [catch {db collation_needed} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db collation_needed SCRIPT"}}
|
||||
do_test tcl-1.19 {
|
||||
set v [catch {db total_changes xyz} msg]
|
||||
lappend v $msg
|
||||
} {1 {wrong # args: should be "db total_changes "}}
|
||||
|
||||
|
||||
if {[sqlite3 -tcl-uses-utf]} {
|
||||
do_test tcl-2.1 {
|
||||
@ -102,6 +163,23 @@ do_test tcl-3.3 {
|
||||
set rc [catch {db onecolumn} errmsg]
|
||||
lappend rc $errmsg
|
||||
} {1 {wrong # args: should be "db onecolumn SQL"}}
|
||||
do_test tcl-3.4 {
|
||||
set rc [catch {db onecolumn {SELECT bogus}} errmsg]
|
||||
lappend rc $errmsg
|
||||
} {1 {no such column: bogus}}
|
||||
|
||||
# Turn the busy handler on and off
|
||||
#
|
||||
do_test tcl-4.1 {
|
||||
proc busy_callback {cnt} {
|
||||
break
|
||||
}
|
||||
db busy busy_callback
|
||||
db busy
|
||||
} {busy_callback}
|
||||
do_test tcl-4.2 {
|
||||
db busy {}
|
||||
db busy
|
||||
} {}
|
||||
|
||||
finish_test
|
||||
|
Loading…
x
Reference in New Issue
Block a user