-C Fix\stestrunner.tcl\sso\sthat\sit\schecks\sfor\smemory\sleaks.
-D 2022-07-13T17:46:42.435
+C Update\stestrunner.tcl\sto\sallow\sthe\suser\sto\sspecify\swhich\stests\sto\srun\son\sthe\scommand\sline.
+D 2022-07-13T19:57:35.922
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F test/temptable3.test d11a0974e52b347e45ee54ef1923c91ed91e4637
F test/temptrigger.test 38f0ca479b1822d3117069e014daabcaacefffcc
F test/tester.tcl 76771269dcc20b2c2d1d6f1175dd50d1eebddc004aebac865483f1829a5cd398
-F test/testrunner.tcl 3bdd2d32319c65f34d1aafe6fe66aac4881e78ded4880719f48203aeea13b1c4
+F test/testrunner.tcl 297f066a0c2c78e552a29060701825fcfd16cd915c19d51654112d54df2feacc
+F test/testset.tcl 8295bbfe2da21bc32a818b55b074d572a24a44fccfb74da919194a749bb7654c
F test/thread001.test b61a29dd87cf669f5f6ac96124a7c97d71b0c80d9012746072055877055cf9ef
F test/thread002.test e630504f8a06c00bf8bbe68528774dd96aeb2e58
F test/thread003.test ee4c9efc3b86a6a2767516a37bd64251272560a7
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P ef229cbb7ffbeb8c8877dff70e9d6d43050d2297dee582a37df3a0caaebd2a41
-R 9ae28163af03b5806c7e690857875476
+P 106f6724d54ccec3edf8c9a0422b89c4f227adb26021ed6f0fc91392ef4b3fc5
+R 032a0dd6c8d21e7f2f5ea3dc860bfe74
U dan
-Z 14e1b9ab4edb92095656b55f758ae601
+Z f52161ed1f80342c1b5b733a625a7b6b
# Remove this line to create a well-formed Fossil manifest.
-106f6724d54ccec3edf8c9a0422b89c4f227adb26021ed6f0fc91392ef4b3fc5
\ No newline at end of file
+900febcf362fa5f592c640d16177f33c13aab11ce31a61c7e18ff1be6e70bf9b
\ No newline at end of file
# Usage:
#
proc usage {} {
- puts stderr "Usage: $::argv0 ?SWITCHES?"
+ puts stderr "Usage: $::argv0 ?SWITCHES? ?PATTERN? ..."
puts stderr ""
puts stderr "where SWITCHES are:"
puts stderr " --jobs NUMBER-OF-JOBS"
#-------------------------------------------------------------------------
-
set R(dbname) [file normalize testrunner.db]
set R(logname) [file normalize testrunner.log]
set R(info_script) [file normalize [info script]]
set R(nJob) [default_njob] ;# Default number of helper processes
set R(leaker) "" ;# Name of first script to leak memory
+set R(patternlist) [list]
+
+set testdir [file dirname $argv0]
+source $testdir/testset.tcl
# Parse the command line options. There are two ways to invoke this
# script - to create a helper or coordinator process. If there are
set a [lindex $argv $ii]
set n [string length $a]
- if {($n>2 && [string match "$a*" --jobs]) || $a=="-j"} {
- incr ii
- set R(nJob) [lindex $argv $ii]
+ if {[string range $a 0 0]=="-"} {
+ if {($n>2 && [string match "$a*" --jobs]) || $a=="-j"} {
+ incr ii
+ set R(nJob) [lindex $argv $ii]
+ } else {
+ usage
+ }
} else {
- usage
+ lappend R(patternlist) [string map {% * _ .} $a]
}
}
set argv [list]
}
-set testdir [file dirname $argv0]
source $testdir/tester.tcl
db close
-#--------------------------------------------------------------------
-# This is temporary!
-#
-# Return a list of all scripts in the "veryquick" test.
-#
-proc all_veryquick_scripts {} {
- set OMIT {
- async2.test async3.test backup_ioerr.test corrupt.test
- corruptC.test crash.test crash2.test crash3.test crash4.test crash5.test
- crash6.test crash7.test delete3.test e_fts3.test fts3rnd.test
- fkey_malloc.test fuzz.test fuzz3.test fuzz_malloc.test in2.test loadext.test
- misc7.test mutex2.test notify2.test onefile.test pagerfault2.test
- savepoint4.test savepoint6.test select9.test
- speed1.test speed1p.test speed2.test speed3.test speed4.test
- speed4p.test sqllimits1.test tkt2686.test thread001.test thread002.test
- thread003.test thread004.test thread005.test trans2.test vacuum3.test
- incrvacuum_ioerr.test autovacuum_crash.test btree8.test shared_err.test
- vtab_err.test walslow.test walcrash.test walcrash3.test
- walthread.test rtree3.test indexfault.test securedel2.test
- sort3.test sort4.test fts4growth.test fts4growth2.test
- bigsort.test walprotocol.test mmap4.test fuzzer2.test
- walcrash2.test e_fkey.test backup.test
- writecrash.test
-
- fts4merge.test fts4merge2.test fts4merge4.test fts4check.test
- fts4merge5.test
- fts3cov.test fts3snippet.test fts3corrupt2.test fts3an.test
- fts3defer.test fts4langid.test fts3sort.test fts5unicode.test
- rtree4.test sessionbig.test
-
- all.test async.test quick.test veryquick.test
- memleak.test permutations.test soak.test fts3.test
- mallocAll.test rtree.test full.test extraquick.test
- session.test rbu.test
-
- }
-
- set testdir [file normalize $::testdir]
- set ret [list]
-
- foreach f [glob -nocomplain $testdir/*.test] {
- if {[lsearch $OMIT [file tail $f]]<0
- && [string match *malloc* $f]==0
- && [string match *ioerr* $f]==0
- && [string match *fault* $f]==0
- && [string match *bigfile* $f]==0
- && [string match *_err* $f]==0
- && [string match *fts5corrupt* $f]==0
- && [string match *fts5big* $f]==0
- && [string match *fts5aj* $f]==0
- } {
- lappend ret $f
- }
- }
-
- set ret
-}
-#--------------------------------------------------------------------
-
proc r_write_db {tcl} {
global R
proc make_new_testset {} {
global R
+ set scripts [testset_patternlist $R(patternlist)]
r_write_db {
db eval $R(schema)
- foreach s [all_veryquick_scripts] {
+ foreach s $scripts {
db eval { INSERT INTO script(filename, state) VALUES ($s, 'ready') }
}
}
--- /dev/null
+
+
+# Commands in this file:
+#
+# testset_all
+# Return a list of all test scripts designed to be run individually.
+#
+# testset_veryquick
+# The subset of [testset_all] meant to run as veryquick.test.
+#
+
+set D(testdir) [file dir [file normalize [info script]]]
+
+proc testset_all {} {
+ global D
+ set ret [list]
+
+ # The following tests are driver scripts that themselves run lots of other
+ # test scripts. They should be ignored here.
+ set drivers {
+ all.test async.test quick.test veryquick.test
+ memleak.test permutations.test soak.test fts3.test
+ mallocAll.test rtree.test full.test extraquick.test
+ session.test rbu.test
+ }
+
+ set srcdir [file dirname $D(testdir)]
+ set ret [glob -nocomplain \
+ $srcdir/test/*.test \
+ $srcdir/ext/rtree/*.test \
+ $srcdir/ext/fts5/test/*.test \
+ $srcdir/ext/expert/*.test \
+ $srcdir/ext/session/*.test \
+ ]
+ set ret [ts_filter $ret $drivers]
+ return $ret
+}
+
+proc testset_veryquick {} {
+ set ret [testset_all]
+
+ set ret [ts_filter $ret {
+ async2.test async3.test backup_ioerr.test corrupt.test
+ corruptC.test crash.test crash2.test crash3.test crash4.test crash5.test
+ crash6.test crash7.test delete3.test e_fts3.test fts3rnd.test
+ fkey_malloc.test fuzz.test fuzz3.test fuzz_malloc.test in2.test loadext.test
+ misc7.test mutex2.test notify2.test onefile.test pagerfault2.test
+ savepoint4.test savepoint6.test select9.test
+ speed1.test speed1p.test speed2.test speed3.test speed4.test
+ speed4p.test sqllimits1.test tkt2686.test thread001.test thread002.test
+ thread003.test thread004.test thread005.test trans2.test vacuum3.test
+ incrvacuum_ioerr.test autovacuum_crash.test btree8.test shared_err.test
+ vtab_err.test walslow.test walcrash.test walcrash3.test
+ walthread.test rtree3.test indexfault.test securedel2.test
+ sort3.test sort4.test fts4growth.test fts4growth2.test
+ bigsort.test walprotocol.test mmap4.test fuzzer2.test
+ walcrash2.test e_fkey.test backup.test
+
+ fts4merge.test fts4merge2.test fts4merge4.test fts4check.test
+ fts4merge5.test
+ fts3cov.test fts3snippet.test fts3corrupt2.test fts3an.test
+ fts3defer.test fts4langid.test fts3sort.test fts5unicode.test
+
+ rtree4.test
+ sessionbig.test
+ }]
+
+ set ret [ts_filter $ret {
+ *malloc* *ioerr* *fault* *bigfile* *_err* *fts5corrupt* *fts5big* *fts5aj*
+ }]
+
+ return $ret
+}
+
+proc ts_filter {input exlist} {
+ foreach f $input { set a($f) 1 }
+ foreach e $exlist { array unset a */$e }
+ array names a
+}
+
+proc testset_patternlist {patternlist} {
+ set nPat [llength $patternlist]
+
+ if {$nPat==0} {
+ set scripts [testset_veryquick]
+ } else {
+ set ii 0
+ set p0 [lindex $patternlist 0]
+
+ if {$p0=="veryquick"} {
+ set scripts [testset_veryquick]
+ incr ii
+ } elseif {$p0=="all"} {
+ set scripts [testset_all]
+ incr ii
+ } else {
+ set scripts [testset_all]
+ }
+
+ if {$nPat>$ii} {
+ array set S [list]
+ foreach f $scripts { set a([file tail $f]) $f }
+
+ foreach p [lrange $patternlist $ii end] {
+ set nList [llength [array names a $p]]
+ if {$nList==0} {
+ puts stderr "Argument $p matches no scripts (typo?)"
+ exit 1
+ }
+ foreach n [array names a $p] { set S($a($n)) 1 }
+ }
+ }
+
+ set scripts [lsort [array names S]]
+ }
+
+ set scripts
+}
+
+