]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Enhance the test harness for the sessions interface so that it does not
authordrh <drh@noemail.net>
Thu, 6 Mar 2014 14:53:25 +0000 (14:53 +0000)
committerdrh <drh@noemail.net>
Thu, 6 Mar 2014 14:53:25 +0000 (14:53 +0000)
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

ext/session/test_session.c
manifest
manifest.uuid

index 4340921a67ffc7cb4486ae9e3e26249993e6a367..022cbc667960ef1cc2c12bd5650c0e4bd9f0564c 100644 (file)
@@ -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(
index 60f4a66dd848be390d767c7093d2d7f8f16e40b2..3d8c760b5d76a15d81b7b9662949514b7442a979 100644 (file)
--- 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
index 732285ae0a2d643eedec572fe1516c92dc3fb3e6..76378d0acdb34649d07858aa1cf75f7686f004a1 100644 (file)
@@ -1 +1 @@
-1ed463d91866182fbc884fb88770717ee5bf33ce
\ No newline at end of file
+bc0e661033b78f27866932244e6204985ae39000
\ No newline at end of file