-C Fix\sa\sproblem\swith\szeroblob()\sand\sCAST(...)\sexpressions\sthat\scould\scause\san\sassert()\sto\sfail.\s(CVS\s4041)
-D 2007-05-30T06:19:33
+C Add\sthe\sstart\sof\sthe\ssoak-test\sinfrastructure.\s(CVS\s4042)
+D 2007-05-30T08:18:04
F Makefile.in a42354804b50c2708ce72cf79e4daa30f50191b5
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
F src/where.c 1c27ddb2f19976175fecdcf8f5a0ca23596917fb
F tclinstaller.tcl 4356d9d94d2b5ed5e68f9f0c80c4df3048dd7617
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
-F test/all.test 93a40a7612b3c5e6efd1f5b98496a8b02a45cfdb
+F test/all.test f0ea4b968d5fe05d85e9cab6fa491ec7e3b9fcc4
F test/alter.test c2a9402e17a731e5294ef370214bd9f88351d18d
F test/alter2.test 50c3f554b8236d179d72511c0a4f23c5eb7f2af3
F test/alter3.test a6eec8f454be9b6ce73d8d7dc711453675a10ce7
F test/fts2m.test 4b30142ead6f3ed076e880a2a464064c5ad58c51
F test/fts2n.test a70357e72742681eaebfdbe9007b87ff3b771638
F test/func.test 605989453d1b42cec1d05c17aa232dc98e3e04e6
-F test/fuzz.test 3d382b2d3c6b909a4f08b46dc6ca6a149eeb3a81
+F test/fuzz.test 9fdb668167bd38eb7137d49c8e9c250994bdbd5b
F test/fuzz2.test ea38692ce2da99ad79fe0be5eb1a452c1c4d37bb
F test/hook.test 7e7645fd9a033f79cce8fdff151e32715e7ec50a
F test/icu.test e6bfae7f625c88fd14df6f540fe835bdfc1e4329
F test/printf.test 69d8cb0771a1a5e4d9d5dece12fc2c16179ac5e5
F test/progress.test 8b22b4974b0a95272566385f8cb8c341c7130df8 x
F test/ptrchng.test 1c712dd6516e1377471744fa765e41c79a357da6
-F test/quick.test 3d7f6ffd285e1589a58874dd483ccb6e058ea4a5
+F test/quick.test 41052ccf861fa49145496c9e9db62df4b0a2b6b8
F test/quote.test 215897dbe8de1a6f701265836d6601cc6ed103e6
F test/rdonly.test b34db316525440d3b42c32e83942c02c37d28ef0
F test/reindex.test 38b138abe36bf9a08c791ed44d9f76cd6b97b78b
F test/shared2.test 8b48f8d33494413ef4cf250110d89403e2bf6b23
F test/shared3.test 01e3e124dbb3859788aabc7cfb82f7ea04421749
F test/shared_err.test cc528f6e78665787e93d9ce3a782a2ce5179d821
+F test/soak.test dac7ec07bdedd8f924de69ba029ed1dacbc1082a
F test/sort.test 0e4456e729e5a92a625907c63dcdedfbe72c5dc5
F test/speed1.test 22e1b27af0683ed44dcd2f93ed817a9c3e65084a
F test/speed2.test 53177056baf6556dcbdcf032bbdfc41c1aa74ded
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P f9a95e92dfaaa61ec0a44b9b7017b07929c94d26
-R 669d18871f9c948e2f1efb490acd8d0d
+P 03750a2a6b5186689f7db6650c0a889429790b03
+R cd63e6e2215c48b174d5e94a02b48d9a
U danielk1977
-Z 49b3f7347b55c791931b6c0615c872bf
+Z 17f10a57e39853a2feb0d4c1a0988d68
-03750a2a6b5186689f7db6650c0a889429790b03
\ No newline at end of file
+5d0b247ca1667f5d773bda337cb6f58c3b14676a
\ No newline at end of file
#***********************************************************************
# This file runs all tests.
#
-# $Id: all.test,v 1.42 2007/05/10 17:32:48 danielk1977 Exp $
+# $Id: all.test,v 1.43 2007/05/30 08:18:04 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
memleak.test
sqllimits1.test
fuzz.test
+ soak.test
}
# Files to include in the test. If this list is empty then everything
#
# The most complicated trees are for SELECT statements.
#
-# $Id: fuzz.test,v 1.12 2007/05/15 07:14:33 danielk1977 Exp $
+# $Id: fuzz.test,v 1.13 2007/05/30 08:18:04 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
set ::REPEATS 5000
+
+# If running quick.test, don't do so many iterations.
if {[info exists ::ISQUICK]} {
if {$::ISQUICK} { set ::REPEATS 20 }
}
#***********************************************************************
# This file runs all tests.
#
-# $Id: quick.test,v 1.56 2007/05/12 09:30:47 danielk1977 Exp $
+# $Id: quick.test,v 1.57 2007/05/30 08:18:04 danielk1977 Exp $
proc lshift {lvar} {
upvar $lvar l
misc7.test
misuse.test
quick.test
+ soak.test
speed1.test
speed2.test
sqllimits1.test
--- /dev/null
+# 2007 May 24
+#
+# The author disclaims copyright to this source code. In place of
+# a legal notice, here is a blessing:
+#
+# May you do good and not evil.
+# May you find forgiveness for yourself and forgive others.
+# May you share freely, never taking more than you give.
+#
+#***********************************************************************
+# This file is the driver for the "soak" tests. It is a peer of the
+# quick.test and all.test scripts.
+#
+# $Id: soak.test,v 1.1 2007/05/30 08:18:04 danielk1977 Exp $
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+rename finish_test really_finish_test
+proc finish_test {} {}
+
+# By default, guarantee that the tests will run for at least 1 hour.
+#
+set TIMEOUT 3600
+
+# Process command-line arguments.
+#
+if {[llength $argv]>0} {
+ foreach {name value} $argv {
+ switch -- $name {
+ -timeout {
+ set TIMEOUT $value
+ }
+ default {
+ puts stderr "Unknown option: $name"
+ exit
+ }
+ }
+ }
+}
+set argv [list]
+
+# Test plan:
+#
+# The general principle is to run those SQLite tests that use
+# pseudo-random data in some way over and over again for a very
+# long time. The number of tests run depends on the value of
+# global variable $TIMEOUT - tests are run for at least $TIMEOUT
+# seconds.
+#
+# fuzz.test (pseudo-random SQL statements)
+# trans.test (pseudo-random changes to a database followed by rollbacks)
+#
+# fuzzy malloc?
+#
+# Many database changes maintaining some kind of invariant.
+# Storing checksums etc.
+#
+
+# List of test files that are run by this file.
+#
+set SOAKTESTS {
+ fuzz.test
+ trans.test
+}
+
+set ISQUICK 1
+
+set soak_starttime [clock seconds]
+set soak_finishtime [expr {$soak_starttime + $TIMEOUT}]
+
+# Loop until the timeout is reached or an error occurs.
+#
+for {set iRun 0} {[clock seconds] < $soak_finishtime && $nErr==0} {incr iRun} {
+
+ set iIdx [expr {$iRun % [llength $SOAKTESTS]}]
+ source [file join $testdir [lindex $SOAKTESTS $iIdx]]
+ catch {db close}
+
+ if {$sqlite_open_file_count>0} {
+ puts "$tail did not close all files: $sqlite_open_file_count"
+ incr nErr
+ lappend ::failList $tail
+ set sqlite_open_file_count 0
+ }
+
+}
+
+really_finish_test
+