| Index: third_party/sqlite/src/test9.c
|
| ===================================================================
|
| --- third_party/sqlite/src/test9.c (revision 56608)
|
| +++ third_party/sqlite/src/test9.c (working copy)
|
| @@ -1,202 +0,0 @@
|
| -/*
|
| -** 2007 March 29
|
| -**
|
| -** The author disclaims copyright to this source code. In place of
|
| -** a legal notice, here is a blessing:
|
| -**
|
| -** May you do good and not evil.
|
| -** May you find forgiveness for yourself and forgive others.
|
| -** May you share freely, never taking more than you give.
|
| -**
|
| -*************************************************************************
|
| -**
|
| -** This file contains obscure tests of the C-interface required
|
| -** for completeness. Test code is written in C for these cases
|
| -** as there is not much point in binding to Tcl.
|
| -**
|
| -** $Id: test9.c,v 1.7 2009/04/02 18:32:27 drh Exp $
|
| -*/
|
| -#include "sqliteInt.h"
|
| -#include "tcl.h"
|
| -#include <stdlib.h>
|
| -#include <string.h>
|
| -
|
| -/*
|
| -** c_collation_test
|
| -*/
|
| -static int c_collation_test(
|
| - ClientData clientData, /* Pointer to sqlite3_enable_XXX function */
|
| - Tcl_Interp *interp, /* The TCL interpreter that invoked this command */
|
| - int objc, /* Number of arguments */
|
| - Tcl_Obj *CONST objv[] /* Command arguments */
|
| -){
|
| - const char *zErrFunction = "N/A";
|
| - sqlite3 *db;
|
| -
|
| - int rc;
|
| - if( objc!=1 ){
|
| - Tcl_WrongNumArgs(interp, 1, objv, "");
|
| - return TCL_ERROR;
|
| - }
|
| -
|
| - /* Open a database. */
|
| - rc = sqlite3_open(":memory:", &db);
|
| - if( rc!=SQLITE_OK ){
|
| - zErrFunction = "sqlite3_open";
|
| - goto error_out;
|
| - }
|
| -
|
| - rc = sqlite3_create_collation(db, "collate", 456, 0, 0);
|
| - if( rc!=SQLITE_MISUSE ){
|
| - sqlite3_close(db);
|
| - zErrFunction = "sqlite3_create_collation";
|
| - goto error_out;
|
| - }
|
| -
|
| - sqlite3_close(db);
|
| - return TCL_OK;
|
| -
|
| -error_out:
|
| - Tcl_ResetResult(interp);
|
| - Tcl_AppendResult(interp, "Error testing function: ", zErrFunction, 0);
|
| - return TCL_ERROR;
|
| -}
|
| -
|
| -/*
|
| -** c_realloc_test
|
| -*/
|
| -static int c_realloc_test(
|
| - ClientData clientData, /* Pointer to sqlite3_enable_XXX function */
|
| - Tcl_Interp *interp, /* The TCL interpreter that invoked this command */
|
| - int objc, /* Number of arguments */
|
| - Tcl_Obj *CONST objv[] /* Command arguments */
|
| -){
|
| - void *p;
|
| - const char *zErrFunction = "N/A";
|
| -
|
| - if( objc!=1 ){
|
| - Tcl_WrongNumArgs(interp, 1, objv, "");
|
| - return TCL_ERROR;
|
| - }
|
| -
|
| - p = sqlite3_malloc(5);
|
| - if( !p ){
|
| - zErrFunction = "sqlite3_malloc";
|
| - goto error_out;
|
| - }
|
| -
|
| - /* Test that realloc()ing a block of memory to a negative size is
|
| - ** the same as free()ing that memory.
|
| - */
|
| - p = sqlite3_realloc(p, -1);
|
| - if( p ){
|
| - zErrFunction = "sqlite3_realloc";
|
| - goto error_out;
|
| - }
|
| -
|
| - return TCL_OK;
|
| -
|
| -error_out:
|
| - Tcl_ResetResult(interp);
|
| - Tcl_AppendResult(interp, "Error testing function: ", zErrFunction, 0);
|
| - return TCL_ERROR;
|
| -}
|
| -
|
| -
|
| -/*
|
| -** c_misuse_test
|
| -*/
|
| -static int c_misuse_test(
|
| - ClientData clientData, /* Pointer to sqlite3_enable_XXX function */
|
| - Tcl_Interp *interp, /* The TCL interpreter that invoked this command */
|
| - int objc, /* Number of arguments */
|
| - Tcl_Obj *CONST objv[] /* Command arguments */
|
| -){
|
| - const char *zErrFunction = "N/A";
|
| - sqlite3 *db = 0;
|
| - sqlite3_stmt *pStmt;
|
| - int rc;
|
| -
|
| - if( objc!=1 ){
|
| - Tcl_WrongNumArgs(interp, 1, objv, "");
|
| - return TCL_ERROR;
|
| - }
|
| -
|
| - /* Open a database. Then close it again. We need to do this so that
|
| - ** we have a "closed database handle" to pass to various API functions.
|
| - */
|
| - rc = sqlite3_open(":memory:", &db);
|
| - if( rc!=SQLITE_OK ){
|
| - zErrFunction = "sqlite3_open";
|
| - goto error_out;
|
| - }
|
| - sqlite3_close(db);
|
| -
|
| -
|
| - rc = sqlite3_errcode(db);
|
| - if( rc!=SQLITE_MISUSE ){
|
| - zErrFunction = "sqlite3_errcode";
|
| - goto error_out;
|
| - }
|
| -
|
| - pStmt = (sqlite3_stmt*)1234;
|
| - rc = sqlite3_prepare(db, 0, 0, &pStmt, 0);
|
| - if( rc!=SQLITE_MISUSE ){
|
| - zErrFunction = "sqlite3_prepare";
|
| - goto error_out;
|
| - }
|
| - assert( pStmt==0 ); /* Verify that pStmt is zeroed even on a MISUSE error */
|
| -
|
| - pStmt = (sqlite3_stmt*)1234;
|
| - rc = sqlite3_prepare_v2(db, 0, 0, &pStmt, 0);
|
| - if( rc!=SQLITE_MISUSE ){
|
| - zErrFunction = "sqlite3_prepare_v2";
|
| - goto error_out;
|
| - }
|
| - assert( pStmt==0 );
|
| -
|
| -#ifndef SQLITE_OMIT_UTF16
|
| - pStmt = (sqlite3_stmt*)1234;
|
| - rc = sqlite3_prepare16(db, 0, 0, &pStmt, 0);
|
| - if( rc!=SQLITE_MISUSE ){
|
| - zErrFunction = "sqlite3_prepare16";
|
| - goto error_out;
|
| - }
|
| - assert( pStmt==0 );
|
| - pStmt = (sqlite3_stmt*)1234;
|
| - rc = sqlite3_prepare16_v2(db, 0, 0, &pStmt, 0);
|
| - if( rc!=SQLITE_MISUSE ){
|
| - zErrFunction = "sqlite3_prepare16_v2";
|
| - goto error_out;
|
| - }
|
| - assert( pStmt==0 );
|
| -#endif
|
| -
|
| - return TCL_OK;
|
| -
|
| -error_out:
|
| - Tcl_ResetResult(interp);
|
| - Tcl_AppendResult(interp, "Error testing function: ", zErrFunction, 0);
|
| - return TCL_ERROR;
|
| -}
|
| -
|
| -/*
|
| -** Register commands with the TCL interpreter.
|
| -*/
|
| -int Sqlitetest9_Init(Tcl_Interp *interp){
|
| - static struct {
|
| - char *zName;
|
| - Tcl_ObjCmdProc *xProc;
|
| - void *clientData;
|
| - } aObjCmd[] = {
|
| - { "c_misuse_test", c_misuse_test, 0 },
|
| - { "c_realloc_test", c_realloc_test, 0 },
|
| - { "c_collation_test", c_collation_test, 0 },
|
| - };
|
| - int i;
|
| - for(i=0; i<sizeof(aObjCmd)/sizeof(aObjCmd[0]); i++){
|
| - Tcl_CreateObjCommand(interp, aObjCmd[i].zName,
|
| - aObjCmd[i].xProc, aObjCmd[i].clientData, 0);
|
| - }
|
| - return TCL_OK;
|
| -}
|
|
|