From: drh Date: Thu, 6 Mar 2014 14:53:25 +0000 (+0000) Subject: Enhance the test harness for the sessions interface so that it does not X-Git-Tag: version-3.13.0~148^2~153 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b7bc8c984917c7ef714d4f1bfbea2916a35f1e3f;p=thirdparty%2Fsqlite.git Enhance the test harness for the sessions interface so that it does not use SQLite operations that can encounter an OOM error in places where it is unable to report an OOM error back up to the test script. FossilOrigin-Name: bc0e661033b78f27866932244e6204985ae39000 --- diff --git a/ext/session/test_session.c b/ext/session/test_session.c index 4340921a67..022cbc6679 100644 --- a/ext/session/test_session.c +++ b/ext/session/test_session.c @@ -159,7 +159,7 @@ static void test_session_del(void *clientData){ TestSession *p = (TestSession*)clientData; if( p->pFilterScript ) Tcl_DecrRefCount(p->pFilterScript); sqlite3session_delete(p->pSession); - ckfree(p); + ckfree((char*)p); } /* @@ -191,7 +191,7 @@ static int test_sqlite3session( memset(p, 0, sizeof(TestSession)); rc = sqlite3session_create(db, Tcl_GetString(objv[3]), &p->pSession); if( rc!=SQLITE_OK ){ - ckfree(p); + ckfree((char*)p); return test_session_error(interp, rc); } @@ -222,10 +222,13 @@ static void test_append_value(Tcl_Obj *pList, sqlite3_value *pVal){ Tcl_ListObjAppendElement(0, pList, Tcl_NewStringObj("f", 1)); pObj = Tcl_NewDoubleObj(sqlite3_value_double(pVal)); break; - case SQLITE_TEXT: + case SQLITE_TEXT: { + const char *z = (char*)sqlite3_value_blob(pVal); + int n = sqlite3_value_bytes(pVal); Tcl_ListObjAppendElement(0, pList, Tcl_NewStringObj("t", 1)); - pObj = Tcl_NewStringObj((char *)sqlite3_value_text(pVal), -1); + pObj = Tcl_NewStringObj(z, n); break; + } case SQLITE_BLOB: Tcl_ListObjAppendElement(0, pList, Tcl_NewStringObj("b", 1)); pObj = Tcl_NewByteArrayObj( diff --git a/manifest b/manifest index 60f4a66dd8..3d8c760b5d 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Merge\sthe\slatest\s3.8.4\stweaks\sfrom\strunk. -D 2014-03-06T13:48:31.335 +C Enhance\sthe\stest\sharness\sfor\sthe\ssessions\sinterface\sso\sthat\sit\sdoes\snot\nuse\sSQLite\soperations\sthat\scan\sencounter\san\sOOM\serror\sin\splaces\swhere\sit\nis\sunable\sto\sreport\san\sOOM\serror\sback\sup\sto\sthe\stest\sscript. +D 2014-03-06T14:53:25.586 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in e4ee6d36cdf6136aee0158675a3b24dd3bf31a5a F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -152,7 +152,7 @@ F ext/session/session_common.tcl 1539d8973b2aea0025c133eb0cc4c89fcef541a5 F ext/session/sessionfault.test 496291b287ba3c0b14ca2e074425e29cc92a64a6 F ext/session/sqlite3session.c 34e19186d05d534e5a37a4f5a8a3c3e24e3fa88a F ext/session/sqlite3session.h 6c35057241567ed6319f750ee504a81c459225e1 -F ext/session/test_session.c d38968307c05229cc8cd603722cf305d6f768832 +F ext/session/test_session.c b74ddeb47ef034618af1e7e7f7d70dadfd61e13c F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8 F magic.txt f439556c5ce01ced70987e5ee86549a45165d9ff @@ -1170,7 +1170,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01 F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff -P a1f2b0428518ec18af74a0e01deb4e40cd95a78f 0a4200f95cf46ad620b9fd91f4444114a0c74730 -R 6b398dedc2e443426b8d1ae4a040c589 +P 1ed463d91866182fbc884fb88770717ee5bf33ce +R 96958e98af456557b41c042e55a4957f U drh -Z 5e939e72ef6a3efe23540b139841828b +Z 0502c27f4f3e5bf50ee9c481e253dd89 diff --git a/manifest.uuid b/manifest.uuid index 732285ae0a..76378d0acd 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -1ed463d91866182fbc884fb88770717ee5bf33ce \ No newline at end of file +bc0e661033b78f27866932244e6204985ae39000 \ No newline at end of file