]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Test for busted TCL builds that do not support 64-bit integers and print
authordrh <drh@noemail.net>
Sat, 2 Sep 2006 14:50:23 +0000 (14:50 +0000)
committerdrh <drh@noemail.net>
Sat, 2 Sep 2006 14:50:23 +0000 (14:50 +0000)
a warning message to users that test failures may be a result of the bad
TCL build and not some problem with SQLite.  Ticket #1953. (CVS 3386)

FossilOrigin-Name: ca864ee913ea5ae88761e617bcac300ffa339369

manifest
manifest.uuid
src/test1.c
test/tester.tcl

index 2713bf6fc2840d9aa066b0a7c4e38def46bec73c..39a46dfba07bd82fe56f54e1a9f63dcbc799a6c8 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Convert\sstatic\svariables\sinto\sconstants\sin\sthe\sFTS\smodule.\s(CVS\s3385)
-D 2006-09-02T14:17:00
+C Test\sfor\sbusted\sTCL\sbuilds\sthat\sdo\snot\ssupport\s64-bit\sintegers\sand\sprint\na\swarning\smessage\sto\susers\sthat\stest\sfailures\smay\sbe\sa\sresult\sof\sthe\sbad\nTCL\sbuild\sand\snot\ssome\sproblem\swith\sSQLite.\s\sTicket\s#1953.\s(CVS\s3386)
+D 2006-09-02T14:50:24
 F Makefile.in 659b63368cfbb95a224c9d2f2a9897802d96a4ea
 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -91,7 +91,7 @@ F src/sqlite3ext.h 11a046b3519c4b9b7709e6d6a95c3a36366f684a
 F src/sqliteInt.h 325a2d45be2b22c1e21ad649e0a898c74eaec7de
 F src/table.c d8817f43a6c6bf139487db161760b9e1e02da3f1
 F src/tclsqlite.c e029f739bed90071789fe81a226d53e97a80a4d8
-F src/test1.c 535294d7f21a4127082c4f7a57f225482df9cc36
+F src/test1.c cb3688f5d2094dc708a7959bd99aed411e096e49
 F src/test2.c ca74a1d8aeb7d9606e8f6b762c5daf85c1a3f92b
 F src/test3.c 85135c09560c48bdb0a23c9b890ab405486b8ec9
 F src/test4.c 8b784cd82de158a2317cb4ac4bc86f91ad315e25
@@ -271,7 +271,7 @@ F test/table.test feea6a3eb08cf166f570255eea5447e42ef82498
 F test/tableapi.test a1982276274d292110d549206bc365b2da43e2ee
 F test/tclsqlite.test 51334389283c74bcbe28645a73159b17e239e9f3
 F test/temptable.test c36f3e5a94507abb64f7ba23deeb4e1a8a8c3821
-F test/tester.tcl 0436eda9b45cd937662b9766262cc2527448413f
+F test/tester.tcl ddb510a86b1d50ef3a97bde94df13185422c0616
 F test/thread1.test 776c9e459b75ba905193b351926ac4019b049f35
 F test/thread2.test 6d7b30102d600f51b4055ee3a5a19228799049fb
 F test/threadtest1.c 6029d9c5567db28e6dc908a0c63099c3ba6c383b
@@ -395,7 +395,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P 8a96bdb72439c0b337cbaa2d07897d0896ea3024
-R 05da3dd8f2c28296657c8de18470d807
+P 098cbafcd6dcf57142b0417e796d27ffddcc0920
+R a457dec7946d047fe968e63a72fc157e
 U drh
-Z a3892b4353b377a4e8243da61653303c
+Z f4d682ad54f7e32ce0b41ddbb807a8aa
index ba08143fba62f0c274ad70b2d76dcc774e128691..47693a6b012d38ff9521b93c247c57c8cb6f54d7 100644 (file)
@@ -1 +1 @@
-098cbafcd6dcf57142b0417e796d27ffddcc0920
\ No newline at end of file
+ca864ee913ea5ae88761e617bcac300ffa339369
\ No newline at end of file
index ac3fae305087f9f5737e9917f48ba265751de185..e1b80fefa74657b6e38896b485558f8141fbafd0 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.217 2006/07/06 10:59:58 drh Exp $
+** $Id: test1.c,v 1.218 2006/09/02 14:50:24 drh Exp $
 */
 #include "sqliteInt.h"
 #include "tcl.h"
@@ -3698,6 +3698,35 @@ static void set_options(Tcl_Interp *interp){
 #endif
 }
 
+/*
+** tclcmd:   working_64bit_int
+**
+** Some TCL builds (ex: cygwin) do not support 64-bit integers.  This
+** leads to a number of test failures.  The present command checks the
+** TCL build to see whether or not it supports 64-bit integers.  It
+** returns TRUE if it does and FALSE if not.
+**
+** This command is used to warn users that their TCL build is defective
+** and that the errors they are seeing in the test scripts might be
+** a result of their defective TCL rather than problems in SQLite.
+*/
+static int working_64bit_int(
+  ClientData clientData, /* Pointer to sqlite3_enable_XXX function */
+  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */
+  int objc,              /* Number of arguments */
+  Tcl_Obj *CONST objv[]  /* Command arguments */
+){
+  Tcl_Obj *pTestObj;
+  int working = 0;
+
+  pTestObj = Tcl_NewWideIntObj(1000000*(i64)1234567890);
+  working = strcmp(Tcl_GetString(pTestObj), "1234567890000000")==0;
+  Tcl_DecrRefCount(pTestObj);
+  Tcl_SetObjResult(interp, Tcl_NewBooleanObj(working));
+  return TCL_OK;
+}
+
+
 /*
 ** Register commands with the TCL interpreter.
 */
@@ -3819,6 +3848,7 @@ int Sqlitetest1_Init(Tcl_Interp *interp){
 #endif
 #endif
      { "sqlite3_global_recover",    test_global_recover, 0   },
+     { "working_64bit_int",         working_64bit_int,   0   },
 
      /* Functions from os.h */
 #ifndef SQLITE_OMIT_DISKIO
index 3e359be5b15af5315d518ef451da2b205c87fb7f..2fa576dd17d84b2fc2bdea31c53c3996d0c401d2 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements some common TCL routines used for regression
 # testing the SQLite library
 #
-# $Id: tester.tcl,v 1.65 2006/06/23 08:05:38 danielk1977 Exp $
+# $Id: tester.tcl,v 1.66 2006/09/02 14:50:24 drh Exp $
 
 # Make sure tclsqlite3 was compiled correctly.  Abort now with an
 # error message if not.
@@ -75,7 +75,6 @@ if {[info exists nTest]} return
 #
 set nErr 0
 set nTest 0
-set nProb 0
 set skip_test 0
 set failList {}
 set maxErr 1000
@@ -139,7 +138,7 @@ proc finish_test {} {
   finalize_testing
 }
 proc finalize_testing {} {
-  global nTest nErr nProb sqlite_open_file_count
+  global nTest nErr sqlite_open_file_count
   if {$nErr==0} memleak_check
 
   catch {db close}
@@ -149,7 +148,6 @@ proc finalize_testing {} {
   catch {
     pp_check_for_leaks
   }
-breakpoint
   sqlite3 db {}
   # sqlite3_clear_tsd_memdebug
   db close
@@ -162,16 +160,18 @@ breakpoint
   incr nTest
   puts "$nErr errors out of $nTest tests"
   puts "Failures on these tests: $::failList"
-  if {$nProb>0} {
-    puts "$nProb probabilistic tests also failed, but this does"
-    puts "not necessarily indicate a malfunction."
+  if {$nErr>0 && ![working_64bit_int]} {
+    puts "******************************************************************"
+    puts "N.B.:  The version of TCL that you used to build this test harness"
+    puts "is defective in that it does not support 64-bit integers.  Some or"
+    puts "all of the test failures above might be a result from this defect"
+    puts "in your TCL build."
+    puts "******************************************************************"
   }
-  if 0 {
   if {$sqlite_open_file_count} {
     puts "$sqlite_open_file_count files were left open"
     incr nErr
   }
-  }
   exit [expr {$nErr>0}]
 }