Break the tcl release tests into smaller units to better take advantage of multi-processor systems.

FossilOrigin-Name: 03cef1c30d96cd42682f57667bb3072c7643ef43fe05eda2d8b82c30789234af
This commit is contained in:
dan 2021-10-07 19:27:17 +00:00
parent a4eeccdfdf
commit 867bc4de2e
7 changed files with 127 additions and 1189 deletions

View File

@ -1251,7 +1251,10 @@ coretestprogs: $(TESTPROGS)
testprogs: coretestprogs srcck1$(BEXE) fuzzcheck$(TEXE) sessionfuzz$(TEXE)
# A very detailed test running most or all test cases
fulltest: $(TESTPROGS) fuzztest
fulltest: alltest fuzztest
# Run most or all tcl test cases
alltest: $(TESTPROGS)
./testfixture$(TEXE) $(TOP)/test/all.test $(TESTOPTS)
# Really really long testing

View File

@ -2437,7 +2437,9 @@ coretestprogs: $(TESTPROGS)
testprogs: coretestprogs srcck1.exe fuzzcheck.exe sessionfuzz.exe
fulltest: $(TESTPROGS) fuzztest
fulltest: alltest fuzztest
alltest: $(TESTPROGS)
@set PATH=$(LIBTCLPATH);$(PATH)
.\testfixture.exe $(TOP)\test\all.test $(TESTOPTS)

View File

@ -1,11 +1,11 @@
C Protect\sall\saccesses\sto\sthe\sExpr.x\sunion\susing\snearby\sassert()s\sand\sbranches.
D 2021-10-07T17:43:30.167
C Break\sthe\stcl\srelease\stests\sinto\ssmaller\sunits\sto\sbetter\stake\sadvantage\sof\smulti-processor\ssystems.
D 2021-10-07T19:27:17.394
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F Makefile.in 2a6e71e91f29e9eb0cb800b6500bbbfef31730d5c37eaadb6e8ea8a45e6ead21
F Makefile.in 457a0f10540bd18a700c9d45add8dcc06e040bc9d1e948c9816b9b6eab1de384
F Makefile.linux-gcc f609543700659711fbd230eced1f01353117621dccae7b9fb70daa64236c5241
F Makefile.msc b18738be47ba9293dbea2048fe1d5a737456fdc630361cc98ef2c2f73bf3395c
F Makefile.msc fef1e54f1a2138aa2de79ad8a928f1711106d082e6a35cdfbbfec9e8fd0c59c3
F README.md 27fb76aa7eb57ed63a53bbba7292b6bf71f51125554f79f16b5d040edd1e6110
F VERSION c6595fef606851f2bc3ebed6a7386c73751835fc909feab7c093739fa4b3c1d1
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
@ -1273,7 +1273,7 @@ F test/parser1.test 6ccdf5e459a5dc4673d3273dc311a7e9742ca952dd0551a6a6320d27035c
F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b
F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442
F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
F test/permutations.test dfdb3356ceb66e515193b12e3fd46706d28274142dc46fd37da63fda9cd4a68a
F test/permutations.test 536ab91e3d8fda6086ae6a3a0087d0750c95a412a9f3fb661e5a58de6d1b1224
F test/pg_common.tcl 3b27542224db1e713ae387459b5d117c836a5f6e328846922993b6d2b7640d9f
F test/pragma.test cae534c12a033a5c319ccc94f50b32811acdef9f67bf19a82ff42697caccd69f
F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f
@ -1301,8 +1301,7 @@ F test/recover.test ccb8c2623902a92ebb76770edd075cb4f75a4760bb7afde38026572c6e79
F test/regexp1.test 0c3ff80f66b0eff80e623eb5db7a3dad512095c573d78ac23009785f6d8f51ce
F test/regexp2.test 55ed41da802b0e284ac7e2fe944be3948f93ff25abbca0361a609acfed1368b5
F test/reindex.test cd9d6021729910ece82267b4f5e1b5ac2911a7566c43b43c176a6a4732e2118d
F test/releasetest.tcl 6f803ef0b896f8f3f4c26eb072c0399963a5987a509a64d45f5dfbc1ebae2951 x
F test/releasetest_data.tcl 1673991f780277748a0c7524969ae9d6f7cfb21d8c790f6081ee5c0d96ea0f28
F test/releasetest_data.tcl 0f844b4884df67619768400eb8e4dd55708397d1728b52a2d41a8b76fb62ca7e
F test/resetdb.test 8062cf10a09d8c048f8de7711e94571c38b38168db0e5877ba7561789e5eeb2b
F test/resolver01.test f4022acafda7f4d40eca94dbf16bc5fc4ac30ceb
F test/returning1.test f96c7245f6ac16038e802760cd90b93479369939a8a7a44e2329ee5aed28239c
@ -1929,7 +1928,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P f85cb287c52baa729aeb223038e979a3b74a1eb3d97bf59c01f5417998204f84
R d1a38de85ec9395d66459f512bc9b39f
U drh
Z a07d4736a8e9c697e3914dd4948a3735
P 8eaa1d4a98b24adf245bbd2fe9212aa6a924a0f09c445906d7f87574f36a7423
R 5eb83fb05c47023834fe1cae6d00b957
U dan
Z 9054f47cc6bebbf9ed5d65ed018c55d7

View File

@ -1 +1 @@
8eaa1d4a98b24adf245bbd2fe9212aa6a924a0f09c445906d7f87574f36a7423
03cef1c30d96cd42682f57667bb3072c7643ef43fe05eda2d8b82c30789234af

View File

@ -1138,7 +1138,14 @@ proc run_tests {name args} {
set ::G(perm:dbconfig) $options(-dbconfig)
set ::G(perm:presql) $options(-presql)
foreach file [lsort $options(-files)] {
set filelist [lsort $options(-files)]
if {[info exists ::env(TCLTEST_PART)]} {
regexp {^([0-9]*)/([0-9]*)$} $::env(TCLTEST_PART) -> A B
set nFile [expr {([llength $filelist]+$B-1)/$B}]
set filelist [lrange $filelist [expr ($A-1)*$nFile] [expr $A*$nFile-1]]
}
foreach file $filelist {
if {[file tail $file] == $file} { set file [file join $::testdir $file] }
if {[info exists ::env(SQLITE_TEST_PATTERN_LIST)]} {

File diff suppressed because it is too large Load Diff

View File

@ -22,14 +22,6 @@
# "fulltest"). The program may be invoked as follows:
#
set USAGE {
$argv0 platforms
List available platforms.
$argv0 tests ?-nodebug? PLATFORM
List tests in a specified platform. If the -nodebug switch is
specified, synthetic debug/ndebug configurations are omitted. Each
test is a combination of a configuration and a makefile target.
$argv0 script ?-msvc? CONFIGURATION TARGET
Given a configuration and make target, return a bash (or, if -msvc
is specified, batch) script to execute the test. The first argument
@ -37,6 +29,14 @@ $argv0 script ?-msvc? CONFIGURATION TARGET
$argv0 configurations
List available configurations.
$argv0 platforms
List available platforms.
$argv0 tests ?-nodebug? PLATFORM
List tests in a specified platform. If the -nodebug switch is
specified, synthetic debug/ndebug configurations are omitted. Each
test is a combination of a configuration and a makefile target.
}
# Omit comments (text between # and \n) in a long multi-line string.
@ -289,56 +289,56 @@ if {$tcl_platform(os)=="Darwin"} {
array set ::Platforms [strip_comments {
Linux-x86_64 {
"Check-Symbols*" checksymbols
"Fast-One" "QUICKTEST_INCLUDE=rbu.test fuzztest test"
"Debug-One" "mptest test"
"Debug-Two" "test"
"Have-Not" test
"Secure-Delete" test
"Unlock-Notify" "QUICKTEST_INCLUDE=notify2.test test"
"User-Auth" tcltest
"Update-Delete-Limit" test
"Extra-Robustness" test
"Device-Two" "threadtest test"
"No-lookaside" test
"Devkit" test
"Apple" test
"Sanitize" test
"Device-One" fulltest
"Default" "threadtest fulltest"
"Valgrind*" valgrindtest
"Check-Symbols*" "" checksymbols
"Fast-One" QUICKTEST_INCLUDE=rbu.test "fuzztest test"
"Debug-One" "" "mptest test"
"Debug-Two" "" test
"Have-Not" "" test
"Secure-Delete" "" test
"Unlock-Notify" QUICKTEST_INCLUDE=notify2.test test
"User-Auth" "" tcltest
"Update-Delete-Limit" "" test
"Extra-Robustness" "" test
"Device-Two" "" "threadtest test"
"No-lookaside" "" test
"Devkit" "" test
"Apple" "" test
"Sanitize*" "" test
"Device-One" "" "fuzztest alltest"
"Default" "" "threadtest fuzztest alltest"
"Valgrind*" "" valgrindtest
}
Linux-i686 {
"Devkit" test
"Have-Not" test
"Unlock-Notify" "QUICKTEST_INCLUDE=notify2.test test"
"Device-One" test
"Device-Two" test
"Default" "threadtest fulltest"
"Devkit" "" test
"Have-Not" "" test
"Unlock-Notify" QUICKTEST_INCLUDE=notify2.test test
"Device-One" "" test
"Device-Two" "" test
"Default" "" "threadtest fuzztest alltest"
}
Darwin-i386 {
"Locking-Style" "mptest test"
"Have-Not" test
"Apple" "threadtest fulltest"
"Locking-Style" "" "mptest test"
"Have-Not" "" test
"Apple" "" "threadtest fuzztest alltest"
}
Darwin-x86_64 {
"Locking-Style" "mptest test"
"Have-Not" test
"Apple" "threadtest fulltest"
"Locking-Style" "" "mptest test"
"Have-Not" "" test
"Apple" "" "threadtest fuzztest alltest"
}
"Windows NT-intel" {
"Stdcall" test
"Have-Not" test
"Windows-Memdebug*" test
"Windows-Win32Heap*" test
"Default" "mptest fulltestonly"
"Stdcall" "" test
"Have-Not" "" test
"Windows-Memdebug*" "" test
"Windows-Win32Heap*" "" test
"Default" "" "mptest fulltestonly"
}
"Windows NT-amd64" {
"Stdcall" test
"Have-Not" test
"Windows-Memdebug*" test
"Windows-Win32Heap*" test
"Default" "mptest fulltestonly"
"Stdcall" "" test
"Have-Not" "" test
"Windows-Memdebug*" "" test
"Windows-Win32Heap*" "" test
"Default" "" "mptest fulltestonly"
}
# The Failure-Detection platform runs various tests that deliberately
@ -346,13 +346,13 @@ array set ::Platforms [strip_comments {
# correctly identifies failures.
#
Failure-Detection {
Fail0* "TEST_FAILURE=0 test"
Sanitize* "TEST_FAILURE=1 test"
Fail2* "TEST_FAILURE=2 valgrindtest"
Fail3* "TEST_FAILURE=3 valgrindtest"
Fail4* "TEST_FAILURE=4 test"
FuzzFail1* "TEST_FAILURE=5 test"
FuzzFail2* "TEST_FAILURE=5 valgrindtest"
Fail0* "TEST_FAILURE=0" test
Sanitize* "TEST_FAILURE=1" test
Fail2* "TEST_FAILURE=2" valgrindtest
Fail3* "TEST_FAILURE=3" valgrindtest
Fail4* "TEST_FAILURE=4" test
FuzzFail1* "TEST_FAILURE=5" test
FuzzFail2* "TEST_FAILURE=5" valgrindtest
}
}]
@ -368,7 +368,7 @@ array set ::Platforms [strip_comments {
# specified for each platforms exists.
#
foreach {key value} [array get ::Platforms] {
foreach {v t} $value {
foreach {v vars t} $value {
if {[string range $v end end]=="*"} {
set v [string range $v 0 end-1]
}
@ -439,6 +439,7 @@ proc main_script {args} {
lappend opts -DSQLITE_EXTRA_IFNULLROW
set config [string range $config 0 end-6]
}
regexp {^(.*)-[0-9]+} $config -> config
# Ensure that the named configuration exists.
#
@ -474,6 +475,7 @@ proc main_script {args} {
if {$bRemoveDebug} {
if {$param=="-DSQLITE_DEBUG" || $param=="-DSQLITE_DEBUG=1"
|| $param=="-DSQLITE_MEMDEBUG" || $param=="-DSQLITE_MEMDEBUG=1"
|| $param=="--enable-debug"
} {
continue
}
@ -586,32 +588,57 @@ proc main_tests {args} {
exit 1
}
foreach {config target} $::Platforms($p) {
set bNosynthetic 0
set lTest [list]
foreach {config vars target} $::Platforms($p) {
if {[string range $config end end]=="*"} {
set bNosynthetic 1
set config [string range $config 0 end-1]
}
puts "$config \"$target\""
if {$bNodebug==0 && $bNosynthetic==0} {
set iHas [string first SQLITE_DEBUG $::Configs($config)]
set dtarget [list]
set iQTI [lsearch -glob $target QUICKTEST_*]
if {$iQTI>=0} {
lappend dtarget [lindex $target $iQTI]
}
} elseif {$bNodebug==0} {
set dtarget test
if {[lsearch $target tcltest]>=0} {
lappend dtarget tcltest
} else {
lappend dtarget test
set dtarget tcltest
}
if {$iHas>=0} {
puts "$config-ndebug \"$dtarget\""
if {$vars!=""} { set dtarget "$vars $dtarget" }
if {[string first SQLITE_DEBUG $::Configs($config)]>=0
|| [string first --enable-debug $::Configs($config)]>=0
} {
lappend lTest "$config-ndebug \"$dtarget\""
} else {
puts "$config-debug \"$dtarget\""
lappend lTest "$config-debug \"$dtarget\""
}
}
if {[llength $target]==1
&& [lsearch $target "valgrindtest"]<0
&& [lsearch $target "alltest"]<0
&& [lsearch $target "fulltestonly"]<0
&& ![string match Sanitize* $config]
} {
if {$vars!=""} { set target "$vars $target" }
lappend lTest "$config \"$target\""
} else {
set idir -1
foreach t $target {
if {$t=="valgrindtest" || $t=="alltest" || $t=="fulltestonly"
|| [string match Sanitize* $config]
} {
if {$vars!=""} { set t "$vars $t" }
for {set ii 1} {$ii<=4} {incr ii} {
lappend lTest "$config-[incr idir] \"TCLTEST_PART=$ii/4 $t\""
}
} else {
if {$vars!=""} { set t "$vars $t" }
lappend lTest "$config-[incr idir] \"$t\""
}
}
}
}
foreach l $lTest {
puts $l
}
}
if {[llength $argv]==0} { usage }