From b2057f506a09e2adef81fc77efd697d16ae14bec Mon Sep 17 00:00:00 2001 From: bernard Date: Thu, 2 Nov 2017 13:50:42 +0800 Subject: [External] Remove external from RT-Thread --- .../SQLite-3.8.1/SQLiteLib/test/test_func.c | 767 --------------------- 1 file changed, 767 deletions(-) delete mode 100644 components/external/SQLite-3.8.1/SQLiteLib/test/test_func.c (limited to 'components/external/SQLite-3.8.1/SQLiteLib/test/test_func.c') diff --git a/components/external/SQLite-3.8.1/SQLiteLib/test/test_func.c b/components/external/SQLite-3.8.1/SQLiteLib/test/test_func.c deleted file mode 100644 index b250e33106..0000000000 --- a/components/external/SQLite-3.8.1/SQLiteLib/test/test_func.c +++ /dev/null @@ -1,767 +0,0 @@ -/* -** 2008 March 19 -** -** 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. -** -************************************************************************* -** Code for testing all sorts of SQLite interfaces. This code -** implements new SQL functions used by the test scripts. -*/ -#include "sqlite3.h" -#include "tcl.h" -#include -#include -#include - -#include "sqliteInt.h" -#include "vdbeInt.h" - - -/* -** Allocate nByte bytes of space using sqlite3_malloc(). If the -** allocation fails, call sqlite3_result_error_nomem() to notify -** the database handle that malloc() has failed. -*/ -static void *testContextMalloc(sqlite3_context *context, int nByte){ - char *z = sqlite3_malloc(nByte); - if( !z && nByte>0 ){ - sqlite3_result_error_nomem(context); - } - return z; -} - -/* -** This function generates a string of random characters. Used for -** generating test data. -*/ -static void randStr(sqlite3_context *context, int argc, sqlite3_value **argv){ - static const unsigned char zSrc[] = - "abcdefghijklmnopqrstuvwxyz" - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "0123456789" - ".-!,:*^+=_|?/<> "; - int iMin, iMax, n, r, i; - unsigned char zBuf[1000]; - - /* It used to be possible to call randstr() with any number of arguments, - ** but now it is registered with SQLite as requiring exactly 2. - */ - assert(argc==2); - - iMin = sqlite3_value_int(argv[0]); - if( iMin<0 ) iMin = 0; - if( iMin>=sizeof(zBuf) ) iMin = sizeof(zBuf)-1; - iMax = sqlite3_value_int(argv[1]); - if( iMax=sizeof(zBuf) ) iMax = sizeof(zBuf)-1; - n = iMin; - if( iMax>iMin ){ - sqlite3_randomness(sizeof(r), &r); - r &= 0x7fffffff; - n += r%(iMax + 1 - iMin); - } - assert( n='0' && c<='9' ){ - return c - '0'; - }else if( c>='a' && c<='f' ){ - return c - 'a' + 10; - }else if( c>='A' && c<='F' ){ - return c - 'A' + 10; - } - return 0; -} - -/* -** Convert hex to binary. -*/ -static void testHexToBin(const char *zIn, char *zOut){ - while( zIn[0] && zIn[1] ){ - *(zOut++) = (testHexChar(zIn[0])<<4) + testHexChar(zIn[1]); - zIn += 2; - } -} - -/* -** hex_to_utf16be(HEX) -** -** Convert the input string from HEX into binary. Then return the -** result using sqlite3_result_text16le(). -*/ -#ifndef SQLITE_OMIT_UTF16 -static void testHexToUtf16be( - sqlite3_context *pCtx, - int nArg, - sqlite3_value **argv -){ - int n; - const char *zIn; - char *zOut; - assert( nArg==1 ); - n = sqlite3_value_bytes(argv[0]); - zIn = (const char*)sqlite3_value_text(argv[0]); - zOut = sqlite3_malloc( n/2 ); - if( zOut==0 ){ - sqlite3_result_error_nomem(pCtx); - }else{ - testHexToBin(zIn, zOut); - sqlite3_result_text16be(pCtx, zOut, n/2, sqlite3_free); - } -} -#endif - -/* -** hex_to_utf8(HEX) -** -** Convert the input string from HEX into binary. Then return the -** result using sqlite3_result_text16le(). -*/ -static void testHexToUtf8( - sqlite3_context *pCtx, - int nArg, - sqlite3_value **argv -){ - int n; - const char *zIn; - char *zOut; - assert( nArg==1 ); - n = sqlite3_value_bytes(argv[0]); - zIn = (const char*)sqlite3_value_text(argv[0]); - zOut = sqlite3_malloc( n/2 ); - if( zOut==0 ){ - sqlite3_result_error_nomem(pCtx); - }else{ - testHexToBin(zIn, zOut); - sqlite3_result_text(pCtx, zOut, n/2, sqlite3_free); - } -} - -/* -** hex_to_utf16le(HEX) -** -** Convert the input string from HEX into binary. Then return the -** result using sqlite3_result_text16le(). -*/ -#ifndef SQLITE_OMIT_UTF16 -static void testHexToUtf16le( - sqlite3_context *pCtx, - int nArg, - sqlite3_value **argv -){ - int n; - const char *zIn; - char *zOut; - assert( nArg==1 ); - n = sqlite3_value_bytes(argv[0]); - zIn = (const char*)sqlite3_value_text(argv[0]); - zOut = sqlite3_malloc( n/2 ); - if( zOut==0 ){ - sqlite3_result_error_nomem(pCtx); - }else{ - testHexToBin(zIn, zOut); - sqlite3_result_text16le(pCtx, zOut, n/2, sqlite3_free); - } -} -#endif - -/* -** SQL function: real2hex(X) -** -** If argument X is a real number, then convert it into a string which is -** the big-endian hexadecimal representation of the ieee754 encoding of -** that number. If X is not a real number, return NULL. -*/ -static void real2hex( - sqlite3_context *context, - int argc, - sqlite3_value **argv -){ - union { - sqlite3_uint64 i; - double r; - unsigned char x[8]; - } v; - char zOut[20]; - int i; - int bigEndian; - v.i = 1; - bigEndian = v.x[0]==0; - v.r = sqlite3_value_double(argv[0]); - for(i=0; i<8; i++){ - if( bigEndian ){ - zOut[i*2] = "0123456789abcdef"[v.x[i]>>4]; - zOut[i*2+1] = "0123456789abcdef"[v.x[i]&0xf]; - }else{ - zOut[14-i*2] = "0123456789abcdef"[v.x[i]>>4]; - zOut[14-i*2+1] = "0123456789abcdef"[v.x[i]&0xf]; - } - } - zOut[16] = 0; - sqlite3_result_text(context, zOut, -1, SQLITE_TRANSIENT); -} - -/* -** tclcmd: test_extract(record, field) -** -** This function implements an SQL user-function that accepts a blob -** containing a formatted database record as the first argument. The -** second argument is the index of the field within that record to -** extract and return. -*/ -static void test_extract( - sqlite3_context *context, - int argc, - sqlite3_value **argv -){ - sqlite3 *db = sqlite3_context_db_handle(context); - u8 *pRec; - u8 *pEndHdr; /* Points to one byte past record header */ - u8 *pHdr; /* Current point in record header */ - u8 *pBody; /* Current point in record data */ - u64 nHdr; /* Bytes in record header */ - int iIdx; /* Required field */ - int iCurrent = 0; /* Current field */ - - assert( argc==2 ); - pRec = (u8*)sqlite3_value_blob(argv[0]); - iIdx = sqlite3_value_int(argv[1]); - - pHdr = pRec + sqlite3GetVarint(pRec, &nHdr); - pBody = pEndHdr = &pRec[nHdr]; - - for(iCurrent=0; pHdr> 4) & 0x0F)]; - hex[1] = hexdigit[(z[i] & 0x0F)]; - hex[2] = '\0'; - Tcl_AppendStringsToObj(pVal, hex, 0); - } - Tcl_AppendStringsToObj(pVal, "'", 0); - break; - } - - case SQLITE_FLOAT: - pVal = Tcl_NewDoubleObj(sqlite3_value_double(&mem)); - break; - - case SQLITE_INTEGER: - pVal = Tcl_NewWideIntObj(sqlite3_value_int64(&mem)); - break; - - case SQLITE_NULL: - pVal = Tcl_NewStringObj("NULL", -1); - break; - - default: - assert( 0 ); - } - - Tcl_ListObjAppendElement(0, pRet, pVal); - - if( mem.zMalloc ){ - sqlite3DbFree(db, mem.zMalloc); - } - } - - sqlite3_result_text(context, Tcl_GetString(pRet), -1, SQLITE_TRANSIENT); - Tcl_DecrRefCount(pRet); -} - - -static int registerTestFunctions(sqlite3 *db){ - static const struct { - char *zName; - signed char nArg; - unsigned char eTextRep; /* 1: UTF-16. 0: UTF-8 */ - void (*xFunc)(sqlite3_context*,int,sqlite3_value **); - } aFuncs[] = { - { "randstr", 2, SQLITE_UTF8, randStr }, - { "test_destructor", 1, SQLITE_UTF8, test_destructor}, -#ifndef SQLITE_OMIT_UTF16 - { "test_destructor16", 1, SQLITE_UTF8, test_destructor16}, - { "hex_to_utf16be", 1, SQLITE_UTF8, testHexToUtf16be}, - { "hex_to_utf16le", 1, SQLITE_UTF8, testHexToUtf16le}, -#endif - { "hex_to_utf8", 1, SQLITE_UTF8, testHexToUtf8}, - { "test_destructor_count", 0, SQLITE_UTF8, test_destructor_count}, - { "test_auxdata", -1, SQLITE_UTF8, test_auxdata}, - { "test_error", 1, SQLITE_UTF8, test_error}, - { "test_error", 2, SQLITE_UTF8, test_error}, - { "test_eval", 1, SQLITE_UTF8, test_eval}, - { "test_isolation", 2, SQLITE_UTF8, test_isolation}, - { "test_counter", 1, SQLITE_UTF8, counterFunc}, - { "real2hex", 1, SQLITE_UTF8, real2hex}, - { "test_decode", 1, SQLITE_UTF8, test_decode}, - { "test_extract", 2, SQLITE_UTF8, test_extract}, - }; - int i; - - for(i=0; i