]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Identify tests that depend on system load and
authordrh <drh@noemail.net>
Thu, 15 Mar 2001 18:21:22 +0000 (18:21 +0000)
committerdrh <drh@noemail.net>
Thu, 15 Mar 2001 18:21:22 +0000 (18:21 +0000)
processor speed. (CVS 192)

FossilOrigin-Name: 4b0ba23807a57eaa3649622cff3be66cd75e7561

VERSION
manifest
manifest.uuid
test/lock.test
test/select2.test
test/tester.tcl
www/changes.tcl

diff --git a/VERSION b/VERSION
index 79728fe87fa1f221236bdad7c1b01d6e359b3195..4a4127c371df8684c0acdc027f67fd908f947ec0 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.24
+1.0.25
index cbc8135448a71dd23514640bfd5b1d37e1175d4b..956895019f6b0f774a5c916240ed71a08a6eb2bc 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,9 +1,9 @@
-C Version\s1.0.24\s(CVS\s479)
-D 2001-03-14T13:00:00
+C Identify\stests\sthat\sdepend\son\ssystem\sload\sand\nprocessor\sspeed.\s(CVS\s192)
+D 2001-03-15T18:21:22
 F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4
 F Makefile.in 7efa81e2985b45ba73db27d55b70cc927f5abfd7
 F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958
-F VERSION 404ea684e576d2b596e185903cea48b3e984c7fd
+F VERSION 80af39f0d764a13d57b92a38c6d21a7d4e5f7197
 F configure 3dc1edb9dcf60215e31ff72b447935ab62211442 x
 F configure.in d892ca33db7e88a055519ce2f36dcb11020e8fff
 F doc/lemon.html e233a3e97a779c7a87e1bc4528c664a58e49dd47
@@ -53,17 +53,17 @@ F test/in.test 2c560c0f55fb777029fd9bb5378f2997582aa603
 F test/index.test ee060ef8912be47ba616e50cce7985259a68d58a
 F test/insert.test 66f4c3bd600fec8eb1e733b928cbe6fa885eff0c
 F test/insert2.test 732405e30331635af8d159fccabe835eea5cd0c6
-F test/lock.test bf6d3f8a0a91c6673ff5e357b7a1397e241f7f14
+F test/lock.test a58af9b98b4351dc80896767781d8e6cab1b3666
 F test/main.test 83cfa58b0b9b69924cc915d5c50b12f0ac9e40e7
 F test/select1.test 68ff778c24fc8982e63dda37acb5b0396913adf7
-F test/select2.test 0c24b9bb8825ebb96e6cc65f1eb61bace0e02aa0
+F test/select2.test 04ac3bd69298f58c7d0883159bab42ab9ad6021c
 F test/select3.test a9234b8424b6c6d71de534f43b91ade9be68e9cc
 F test/select4.test cb5374d7c87680e294ac749307459a5cc547609d
 F test/select5.test e2b9d51d88cbd6c307c2c05b0ef55fe7ba811ac2
 F test/sort.test d582086c4bb7df3fbf50aa72e69d7e235e9f8e31
 F test/subselect.test bf8b251a92fb091973c1c469ce499dc9648a41d5
 F test/table.test eaa25951c0f18615763cd3dc248ea4bc38739c05
-F test/tester.tcl e24caef6d07c58c16b24e7afc967464b288a4065
+F test/tester.tcl 2afa947ed17c4633864fbd6506f20e26e884103c
 F test/update.test 72c0c93310483b86dc904a992220c5b84c7ce100
 F test/vacuum.test 2127748ff4ddb409212efbb6d9fb9c469ea1b49c
 F test/where.test bbab5a308055fb6087dc23d600b4ad2b72797397
@@ -80,7 +80,7 @@ F www/arch.fig 4f246003b7da23bd63b8b0af0618afb4ee3055c8
 F www/arch.png 8dae0766d42ed3de9ed013c1341a5792bcf633e6
 F www/arch.tcl a40380c1fe0080c43e6cc5c20ed70731511b06be
 F www/c_interface.tcl 11be2d5826eb7d6efd629751d3b483c1ed78ba14
-F www/changes.tcl a8cbb3496ae35184fabc5f7b47242bf33a5637d1
+F www/changes.tcl 1698d3b1636ec70c77d22aebccc12f43ba4c1c57
 F www/crosscompile.tcl c99efacb3aefaa550c6e80d91b240f55eb9fd33e
 F www/dynload.tcl 02eb8273aa78cfa9070dd4501dca937fb22b466c
 F www/fileformat.tcl cfb7fba80b7275555281ba2f256c00734bcdd1c9
@@ -91,7 +91,7 @@ F www/opcode.tcl cb3a1abf8b7b9be9f3a228d097d6bf8b742c2b6f
 F www/sqlite.tcl cb0d23d8f061a80543928755ec7775da6e4f362f
 F www/tclsqlite.tcl 06f81c401f79a04f2c5ebfb97e7c176225c0aef2
 F www/vdbe.tcl 0c8aaa529dd216ccbf7daaabd80985e413d5f9ad
-P 8f79ca2acaf765ecb3274c353284c55b6790f657
-R 360be56ced6760c85770c34d6c105ac8
+P 34b17e6ce15dd24dc2ca609ef9c136fe4dc1b4b5
+R 9278e0d1b4fb4a58660b2bd6644e304b
 U drh
-Z 7f6063d380c9dc73dddd8b75f41104c4
+Z 6ff756cd972c647d04eb15cb7f8ae57c
index a3082e931ce65cbc78a7f2d8f545933b0601ca2e..2fd1552560c4c8b5769613a51fcac449ec6f9cce 100644 (file)
@@ -1 +1 @@
-34b17e6ce15dd24dc2ca609ef9c136fe4dc1b4b5
\ No newline at end of file
+4b0ba23807a57eaa3649622cff3be66cd75e7561
\ No newline at end of file
index 814b6b9a21060d64e361e9496c8c3cdd46d7d35f..0de1842684039cd2b48944e4b6814e388c0731dd 100644 (file)
 # This file implements regression tests for SQLite library.  The
 # focus of this script is database locks.
 #
-# $Id: lock.test,v 1.5 2001/01/04 14:20:18 drh Exp $
+# $Id: lock.test,v 1.6 2001/03/15 18:21:22 drh Exp $
 
 if {$dbprefix=="gdbm:"} {
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
 
-
 # Create a largish table
 #
 do_test lock-1.0 {
@@ -56,14 +55,14 @@ do_test lock-1.1 {
   set v {}
 } {}
 
-do_test lock-1.2 {
+do_probtest lock-1.2 {
   # Now try to update the database
   #
   set v [catch {execsql {UPDATE big SET f2='xyz' WHERE f1=11}} msg]
   lappend v $msg
 } {5 {table big is locked}}
 
-do_test lock-1.3 {
+do_probtest lock-1.3 {
   # Try to update the database in a separate process
   #
   set f [open update.sql w]
@@ -74,7 +73,7 @@ do_test lock-1.3 {
   exec ./sqlite testdb <update.sql
 } "UPDATE big SET f2='xyz' WHERE f1=11;\nSQL error: table big is locked\n22"
 
-do_test lock-1.4 {
+do_probtest lock-1.4 {
   # Try to update the database using a timeout
   #
   set f [open update.sql w]
@@ -85,7 +84,7 @@ do_test lock-1.4 {
   exec ./sqlite testdb <update.sql
 } "UPDATE big SET f2='xyz' WHERE f1=11;\nSQL error: table big is locked\n22"
 
-do_test lock-1.5 {
+do_probtest lock-1.5 {
   # Try to update the database using a timeout
   #
   set f [open update.sql w]
index ab88f71d5a9c7e7e062e902684dcd8ec6f79561a..fd108ef0829eee4daf1c2eb92894827af07032f4 100644 (file)
@@ -23,7 +23,7 @@
 # This file implements regression tests for SQLite library.  The
 # focus of this file is testing the SELECT statement.
 #
-# $Id: select2.test,v 1.9 2000/10/19 14:10:09 drh Exp $
+# $Id: select2.test,v 1.10 2001/03/15 18:21:22 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -109,8 +109,11 @@ do_test select2-3.2d {
 do_test select2-3.2e {
   execsql {SELECT fcnt() FROM tbl2 WHERE f2=1000}
 } {2}
+
+# omit the time-dependent tests
+#
 testif gdbm:
-do_test select2-3.2f {
+do_probtest select2-3.2f {
   set t1 [lindex [time {execsql {SELECT f1 FROM tbl2 WHERE 1000=f2}} 1] 0]
   set t2 [lindex [time {execsql {SELECT f1 FROM tbl2 WHERE f2=1000}} 1] 0]
   expr {$t1*0.7<$t2 && $t2*0.7<$t1}
@@ -118,13 +121,13 @@ do_test select2-3.2f {
 
 # Make sure queries run faster with an index than without
 #
-do_test select2-3.3 {
+do_probtest select2-3.3 {
   set t1 [lindex [time {execsql {SELECT f1 from tbl2 WHERE f2==2000}} 1] 0]
   execsql {DROP INDEX idx1}
   set t2 [lindex [time {execsql {SELECT f1 FROM tbl2 WHERE f2==2000}} 1] 0]
   expr {$t1*10 < $t2}
 } {1}
-do_test select2-3.4 {
+do_probtest select2-3.4 {
   expr {[execsql {SELECT fcnt() FROM tbl2 WHERE f2==2000}]>10}
 } {1}
 
index 013818dd851464bc00f2d94687a01ac4788c84ab..6d55d5fa1aeb7b88d7099113a25d2732b33a1523 100644 (file)
@@ -23,7 +23,7 @@
 # This file implements some common TCL routines used for regression
 # testing the SQLite library
 #
-# $Id: tester.tcl,v 1.10 2001/01/31 13:28:09 drh Exp $
+# $Id: tester.tcl,v 1.11 2001/03/15 18:21:22 drh Exp $
 
 # Create a test database
 #
@@ -55,6 +55,7 @@ if {[info exists nTest]} return
 #
 set nErr 0
 set nTest 0
+set nProb 0
 set skip_test 0
 
 # Invoke the do_test procedure to run a single test 
@@ -91,6 +92,44 @@ proc do_test {name cmd expected} {
   }
 }
 
+# Invoke this procedure on a test that is probabilistic
+# and might fail sometimes.
+#
+proc do_probtest {name cmd expected} {
+  global argv nProb nTest skip_test
+  if {$skip_test} {
+    set skip_test 0
+    return
+  }
+  if {[llength $argv]==0} { 
+    set go 1
+  } else {
+    set go 0
+    foreach pattern $argv {
+      if {[string match $pattern $name]} {
+        set go 1
+        break
+      }
+    }
+  }
+  if {!$go} return
+  incr nTest
+  puts -nonewline $::dbprefix$name...
+  flush stdout
+  if {[catch {uplevel #0 "$cmd;\n"} result]} {
+    puts "\nError: $result"
+    incr nErr
+  } elseif {[string compare $result $expected]} {
+    puts "\nExpected: \[$expected\]\n     Got: \[$result\]"
+    puts "NOTE: The results of the previous test depend on system load"
+    puts "and processor speed.  The test may sometimes fail even if the"
+    puts "library is working correctly."
+    incr nProb 
+  } else {
+    puts " Ok"
+  }
+}
+
 # Skip a test based on the dbprefix
 #
 proc skipif {args} {
@@ -131,11 +170,15 @@ proc memleak_check {} {
 # Run this routine last
 #
 proc finish_test {} {
-  global nTest nErr
+  global nTest nErr nProb
   memleak_check
   catch {db close}
   puts "$nErr errors out of $nTest tests"
-  exit $nErr
+  if {$nProb>0} {
+    puts "$nProb probabilistic tests also failed, but this does"
+    puts "not necessarily indicate a malfunction."
+  }
+  exit [expr {$nErr>0}]
 }
 
 # A procedure to execute SQL
index 25ac442f5f25fd56d634563e98d13a4f2c75f3a9..49204119f3b8078190d0bf3101a9af602702e3bd 100644 (file)
@@ -17,8 +17,17 @@ proc chng {date desc} {
   puts "<DD><P><UL>$desc</UL></P></DD>"
 }
 
-chng {2001 Mar 14 19 (1.0.24)} {
-<li>Fix a bug which was causing 
+chng {2001 Mar 15 (1.0.25)} {
+<li>Modify the test scripts to identify tests that depend on system
+    load and processor speed and
+    to warn the user that a failure of one of those (rare) tests does
+    not necessarily mean the library is malfunctioning.  No changes to
+    code.
+    </li>
+}
+
+chng {2001 Mar 14 (1.0.24)} {
+<li>Fix a bug which was causing
     the UPDATE command to fail on systems where "malloc(0)" returns
     NULL.  The problem does not appear Windows, Linux, or HPUX but does 
     cause the library to fail on QNX.
@@ -258,7 +267,7 @@ chng {2000 June 6} {
 <li>Added support for using <b>(SELECT ...)</b> within expressions</li>
 <li>Added support for <b>IN</b> and <b>BETWEEN</b> operators</li>
 <li>Added support for <b>GROUP BY</b> and <b>HAVING</b></li>
-<li>NULL values are now reported ot the callback as a NULL pointer
+<li>NULL values are now reported to the callback as a NULL pointer
     rather than an empty string.</li>
 }