]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Additional error checking and tests.
authorshaneh <shaneh@noemail.net>
Fri, 5 Nov 2010 03:58:58 +0000 (03:58 +0000)
committershaneh <shaneh@noemail.net>
Fri, 5 Nov 2010 03:58:58 +0000 (03:58 +0000)
FossilOrigin-Name: 1ab9a59237bed6d03b55153a67588486f9adc67b

manifest
manifest.uuid
src/test_multiplex.c
test/multiplex.test

index 36d8c95a95afa28fbd06c236304837c16c8b2b4a..d8d721affbdfe347198b3f786abb705f7bc0b5c9 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Additional\stests\sand\scommenting\sfor\sthe\smultiplex\sVFS.
-D 2010-11-05T03:43:55
+C Additional\serror\schecking\sand\stests.
+D 2010-11-05T03:58:59
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in e7a59672eaeb04408d1fa8501618d7501a3c5e39
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -207,7 +207,7 @@ F src/test_intarray.h 489edb9068bb926583445cb02589344961054207
 F src/test_journal.c 785edd54f963aefb3c1628124170a56697c68c70
 F src/test_loadext.c df586c27176e3c2cb2e099c78da67bf14379a56e
 F src/test_malloc.c 09a88f0c111201dc4f8c20470aa1b5f611d59200
-F src/test_multiplex.c 8103a0ae1b36cdaf63ef620233e62b786c585d08
+F src/test_multiplex.c 197ff9d3b55ea11fbfd73f7840d5d0956a37f49a
 F src/test_mutex.c ce06b59aca168cd8c520b77159a24352a7469bd3
 F src/test_onefile.c 40cf9e212a377a6511469384a64b01e6e34b2eec
 F src/test_osinst.c f408c6a181f2fb04c56273afd5c3e1e82f60392c
@@ -559,7 +559,7 @@ F test/misc5.test 45b2e3ed5f79af2b4f38ae362eaf4c49674575bd
 F test/misc6.test 953cc693924d88e6117aeba16f46f0bf5abede91
 F test/misc7.test c5f4e6a82e04e71820c0f9f64f6733f04c8ae0ae
 F test/misuse.test 30b3a458e5a70c31e74c291937b6c82204c59f33
-F test/multiplex.test 2f6830ad67e0a26d28658b4ed3ff07c909075eb8
+F test/multiplex.test 201607f360704f2a34a43116e239cf68d5229544
 F test/mutex1.test 5b71777fc127509cd257910c8db799de557a02de
 F test/mutex2.test bfeaeac2e73095b2ac32285d2756e3a65e681660
 F test/nan.test a44e04df1486fcfb02d32468cbcd3c8e1e433723
@@ -885,7 +885,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 18a73795b427e3d04a8a437410a271a50bbe32e4
-R 7a583acd4959f9dd49542ab66e09f45d
+P 8ed944ba74566c6241d655a39801ad192c61219a
+R 2e87de5f11b0bd307c5994f0595baf10
 U shaneh
-Z 0c53acc363de7c9bf67ad1c52d50bdb6
+Z 00935f175454b7260c72ad18880a1123
index b14723cf9ef9c3dda0d43ef056151b0a4c01e067..e2860a6a78563d0867fcf4b083a23ea239e08b06 100644 (file)
@@ -1 +1 @@
-8ed944ba74566c6241d655a39801ad192c61219a
\ No newline at end of file
+1ab9a59237bed6d03b55153a67588486f9adc67b
\ No newline at end of file
index e002c78bd6df355c5a3bc7bd8d935de6d22248ee..c21ea766812a37966aff0b9e6a5f8c85a5a35dff 100644 (file)
@@ -341,7 +341,7 @@ static int multiplexTruncate(sqlite3_file *pConn, sqlite3_int64 size){
       rc2 = pSubOpen->pMethods->xClose(pSubOpen);
       if( rc2!=SQLITE_OK ) rc = SQLITE_IOERR_TRUNCATE;
     }
-    if( i ) sqlite3_snprintf(pGroup->nName+6, pGroup->zName+pGroup->nName, "-%04d", i);
+    sqlite3_snprintf(pGroup->nName+6, pGroup->zName+pGroup->nName, "-%04d", i);
     rc2 = pOrigVfs->xDelete(pOrigVfs, pGroup->zName, 0);
     if( rc2!=SQLITE_OK ) rc = SQLITE_IOERR_TRUNCATE;
   }
@@ -638,6 +638,8 @@ int sqlite3_multiplex_set(
 ){
   if( !gMultiplex.isInitialized ) return SQLITE_MISUSE;
   if( gMultiplex.pGroups ) return SQLITE_MISUSE;
+  if( nChunkSize<32 ) return SQLITE_MISUSE;
+  if( nMaxChunks<1 ) return SQLITE_MISUSE;
   if( nMaxChunks>SQLITE_MULTIPLEX_MAX_CHUNKS ) return SQLITE_MISUSE;
   multiplexEnter();
   gMultiplex.nChunkSize = nChunkSize;
@@ -732,11 +734,6 @@ static int test_multiplex_set(
   if( Tcl_GetIntFromObj(interp, objv[1], &nChunkSize) ) return TCL_ERROR;
   if( Tcl_GetIntFromObj(interp, objv[2], &nMaxChunks) ) return TCL_ERROR;
 
-  if( nMaxChunks>SQLITE_MULTIPLEX_MAX_CHUNKS ){
-    Tcl_WrongNumArgs(interp, 1, objv, "MAX_CHUNKS > SQLITE_MULTIPLEX_MAX_CHUNKS");
-    return TCL_ERROR;
-  }
-
   /* Invoke sqlite3_multiplex_set() */
   rc = sqlite3_multiplex_set(nChunkSize, nMaxChunks);
 
index 9495c6542192c045edb97e66eeac78cb37af351e..753ce2722b8c7b19cbdd27f6198a02c119560ccb 100644 (file)
@@ -39,6 +39,14 @@ do_test multiplex-1.6 { sqlite3_multiplex_shutdown }               {SQLITE_OK}
 do_test multiplex-1.7 { sqlite3_multiplex_initialize "" 1 }        {SQLITE_OK}
 do_test multiplex-1.8 { sqlite3_multiplex_shutdown }               {SQLITE_OK}
 
+do_test multiplex-1.9  { sqlite3_multiplex_initialize "" 1 }       {SQLITE_OK}
+do_test multiplex-1.10.1 { sqlite3_multiplex_set 0x8000 16 }       {SQLITE_OK}
+do_test multiplex-1.10.2 { sqlite3_multiplex_set 0x8000 -1 }       {SQLITE_MISUSE}
+do_test multiplex-1.10.3 { sqlite3_multiplex_set -1 16 }           {SQLITE_MISUSE}
+do_test multiplex-1.10.4 { sqlite3_multiplex_set 31 16 }           {SQLITE_MISUSE}
+do_test multiplex-1.10.5 { sqlite3_multiplex_set 0x8000 33 }       {SQLITE_MISUSE}
+do_test multiplex-1.11 { sqlite3_multiplex_shutdown }              {SQLITE_OK}
+
 
 #-------------------------------------------------------------------------
 # Some simple warm-body tests with a single database file in rollback