]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add a new test command, sqlite3_mprintf_long, for testing the behavior
authordrh <drh@noemail.net>
Sun, 1 Feb 2009 00:21:09 +0000 (00:21 +0000)
committerdrh <drh@noemail.net>
Sun, 1 Feb 2009 00:21:09 +0000 (00:21 +0000)
of "long integer" printf formatting.  Ticket #3621. (CVS 6224)

FossilOrigin-Name: 3ba1a17b1306bc61b9861ec8d3b239e16a3081ba

manifest
manifest.uuid
src/test1.c
test/printf.test

index b941846dffcde2b4028403a529f00a3630b03f34..61907458367c2e4490e6bcef7d57c661a9623a78 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Make\sthe\sTO\skeyword\savailable\seven\sif\sSQLITE_OMIT_ALTERTABLE\sis\sdefined.\r\nTicket\s#3622.\s(CVS\s6223)
-D 2009-02-01T00:00:46
+C Add\sa\snew\stest\scommand,\ssqlite3_mprintf_long,\sfor\stesting\sthe\sbehavior\nof\s"long\sinteger"\sprintf\sformatting.\s\sTicket\s#3621.\s(CVS\s6224)
+D 2009-02-01T00:21:10
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in 3871d308188cefcb7c5ab20da4c7b6aad023bc52
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -163,7 +163,7 @@ F src/sqliteLimit.h ffe93f5a0c4e7bd13e70cd7bf84cfb5c3465f45d
 F src/status.c 237b193efae0cf6ac3f0817a208de6c6c6ef6d76
 F src/table.c 332ab0ea691e63862e2a8bdfe2c0617ee61062a3
 F src/tclsqlite.c 7d77c3899d0244804d2773c9157e783788627762
-F src/test1.c 4a06b801c6167f18b8b2108de8f2754f2a6de116
+F src/test1.c 72ed8f7cabea905401691a836d578b8317b4d76e
 F src/test2.c 9689e7d3b7791da8c03f9acd1ea801802cb83c17
 F src/test3.c 88a246b56b824275300e6c899634fbac1dc94b14
 F src/test4.c f79ab52d27ff49b784b631a42e2ccd52cfd5c84c
@@ -483,7 +483,7 @@ F test/pcache2.test 46efd980a89f737847b99327bda19e08fe11e402
 F test/permutations.test 2e777ae1eeb11b777b31aad929c4351464758441
 F test/pragma.test a35b0be36542477183168cdb8b743f5c0d883c4d
 F test/pragma2.test 5364893491b9231dd170e3459bfc2e2342658b47
-F test/printf.test 262a5acd3158f788e9bdf7f18d718f3af32ff6ef
+F test/printf.test 47e9e5bbec8509023479d54ceb71c9d05a95308a
 F test/progress.test 5b075c3c790c7b2a61419bc199db87aaf48b8301 x
 F test/ptrchng.test ef1aa72d6cf35a2bbd0869a649b744e9d84977fc
 F test/quick.test 9ab91798b047684f0dd26ee698920dbb69a30a10
@@ -693,7 +693,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P 9cd43c82a3c123829806aa7bf14efdd29f4424d8
-R c837b874eda97feb44e3ddcebddfe5a4
+P 3890985ca6750584876596fd0a124f47ee032075
+R 01401eed13c10e23eb0e903de34beac8
 U drh
-Z 7f87a792868ba843d85460fd8f16ca72
+Z cd9d69a9bd245a1f043eb0c9f0fc7010
index 1dc726e9a7270f0e79144dd982b9bcd36e0f3f05..e7dc28469ddafa46de2123b3f94c8c5ec1d752bd 100644 (file)
@@ -1 +1 @@
-3890985ca6750584876596fd0a124f47ee032075
\ No newline at end of file
+3ba1a17b1306bc61b9861ec8d3b239e16a3081ba
\ No newline at end of file
index 519a8903d02e4cbd0ddd0efb650fcc19b7646788..3a4ba7027cbfd4ec7caa0778b53cb3028e043bd5 100644 (file)
@@ -13,7 +13,7 @@
 ** is not included in the SQLite library.  It is used for automated
 ** testing of the SQLite library.
 **
-** $Id: test1.c,v 1.344 2009/01/30 05:59:11 shane Exp $
+** $Id: test1.c,v 1.345 2009/02/01 00:21:10 drh Exp $
 */
 #include "sqliteInt.h"
 #include "tcl.h"
@@ -1259,6 +1259,38 @@ static int sqlite3_mprintf_int64(
   return TCL_OK;
 }
 
+/*
+** Usage:  sqlite3_mprintf_long FORMAT INTEGER INTEGER INTEGER
+**
+** Call mprintf with three long integer arguments.   This might be the
+** same as sqlite3_mprintf_int or sqlite3_mprintf_int64, depending on
+** platform.
+*/
+static int sqlite3_mprintf_long(
+  void *NotUsed,
+  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */
+  int argc,              /* Number of arguments */
+  char **argv            /* Text of each argument */
+){
+  int i;
+  long int a[3];
+  int b[3];
+  char *z;
+  if( argc!=5 ){
+    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
+       " FORMAT INT INT INT\"", 0);
+    return TCL_ERROR;
+  }
+  for(i=2; i<5; i++){
+    if( Tcl_GetInt(interp, argv[i], &b[i-2]) ) return TCL_ERROR;
+    a[i-2] = (long int)b[i-2];
+  }
+  z = sqlite3_mprintf(argv[1], a[0], a[1], a[2]);
+  Tcl_AppendResult(interp, z, 0);
+  sqlite3_free(z);
+  return TCL_OK;
+}
+
 /*
 ** Usage:  sqlite3_mprintf_str FORMAT INTEGER INTEGER STRING
 **
@@ -4807,6 +4839,7 @@ int Sqlitetest1_Init(Tcl_Interp *interp){
      { "db_leave",                      (Tcl_CmdProc*)db_leave               },
      { "sqlite3_mprintf_int",           (Tcl_CmdProc*)sqlite3_mprintf_int    },
      { "sqlite3_mprintf_int64",         (Tcl_CmdProc*)sqlite3_mprintf_int64  },
+     { "sqlite3_mprintf_long",          (Tcl_CmdProc*)sqlite3_mprintf_long   },
      { "sqlite3_mprintf_str",           (Tcl_CmdProc*)sqlite3_mprintf_str    },
      { "sqlite3_snprintf_str",          (Tcl_CmdProc*)sqlite3_snprintf_str   },
      { "sqlite3_mprintf_stronly",       (Tcl_CmdProc*)sqlite3_mprintf_stronly},
index 346992de19a78361c107c89c5817178747cdedaf..19f857cd101a75cc3421c1948a86e8dffd1b1be6 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements regression tests for SQLite library.  The
 # focus of this file is testing the sqlite_*_printf() interface.
 #
-# $Id: printf.test,v 1.30 2008/07/09 16:51:52 drh Exp $
+# $Id: printf.test,v 1.31 2009/02/01 00:21:10 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -3540,7 +3540,7 @@ do_test printf-8.1 {
   sqlite3_mprintf_int {%u %u %u} 0x7fffffff 0x80000000 0xffffffff
 } {2147483647 2147483648 4294967295}
 do_test printf-8.2 {
-  sqlite3_mprintf_int {%lu %lu %lu} 0x7fffffff 0x80000000 0xffffffff
+  sqlite3_mprintf_long {%lu %lu %lu} 0x7fffffff 0x80000000 0xffffffff
 } {2147483647 2147483648 4294967295}
 do_test printf-8.3 {
   sqlite3_mprintf_int64 {%llu %llu %llu} 2147483647 2147483648 4294967296