Add "mdevtest" target to makefiles. Equivalent to running "devtest" on both debug and non-debug builds.

FossilOrigin-Name: af354fbc0be06d5792a1e712ec4e9cec4c6cb4521335aa31f8f51ca5c94499ae
This commit is contained in:
dan 2023-08-12 17:36:57 +00:00
parent 6c6badd2ef
commit a6f09a0193
8 changed files with 167 additions and 133 deletions

View File

@ -1314,6 +1314,9 @@ testrunner: testfixture$(TEXE)
#
devtest: testfixture$(TEXE) fuzztest testrunner
mdevtest:
$(TCLSH_CMD) $(TOP)/test/testrunner.tcl mdevtest
# Testing for a release
#
releasetest: testfixture$(TEXE)

View File

@ -2505,6 +2505,9 @@ testrunner: testfixture.exe
#
devtest: testfixture.exe fuzztest testrunner
mdevtest:
$(TCLSH_CMD) $(TOP)\test\testrunner.tcl mdevtest
# Testing for a release
#
releasetest: testfixture.exe fuzztest

View File

@ -940,6 +940,9 @@ testrunner: testfixture$(EXE)
#
devtest: testfixture$(EXE) fuzztest testrunner
mdevtest:
tclsh $(TOP)/test/testrunner.tcl mdevtest
# A very quick test using only testfixture and omitting all the slower
# tests. Designed to run in under 3 minutes on a workstation.
#

View File

@ -1,11 +1,11 @@
C Modernize\sthe\ssqlite3\sshell\sman\spage\sa\sbit,\sper\s[forum:d9aa201dee553bb2|forum\srequest].
D 2023-08-11T22:40:06.541
C Add\s"mdevtest"\starget\sto\smakefiles.\sEquivalent\sto\srunning\s"devtest"\son\sboth\sdebug\sand\snon-debug\sbuilds.
D 2023-08-12T17:36:57.632
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F Makefile.in 5ad2d1e198306bc730f06f7545d3a8832225b1bfddbc648d97c0e0b9a35f67e9
F Makefile.in 6f391d54fa01f8a49b024fef5cce1ab8234c281164641cf9a52694b432bdec1b
F Makefile.linux-gcc f3842a0b1efbfbb74ac0ef60e56b301836d05b4d867d014f714fa750048f1ab6
F Makefile.msc daad4a19e0b3c3c3b79b64d4ddbf75e3f506405e8d3f3f604d6f48b26043c51f
F Makefile.msc dd4c8fcc274e7933756cc581f7d3b4de080e8e8eef7770edde079f4aa9c6c206
F README.md c1c4218efcc4071a6e26db2b517fdbc1035696a29b370edd655faddbef02b224
F VERSION c6366dc72582d3144ce87b013cc35fe48d62f6d07d5be0c9716ea33c862144aa
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
@ -563,7 +563,7 @@ F ext/wasm/wasmfs.make 8a4955882aaa0783b3f60a9484a1f0f3d8b6f775c0fcd17c082f31966
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
F main.mk 0eb735008653412026092961cecdf7d698156c060e4062a69d911335982d471c
F main.mk e18c03071dbb9da424212ba2a1ea331ae0e8f6d7d51283b7ad610c52ea11229c
F mptest/config01.test 3c6adcbc50b991866855f1977ff172eb6d901271
F mptest/config02.test 4415dfe36c48785f751e16e32c20b077c28ae504
F mptest/crash01.test 61e61469e257df0850df4293d7d4d6c2af301421
@ -1370,7 +1370,7 @@ F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b
F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442
F test/pendingrace.test cbdf0f74bc939fb43cebad64dda7a0b5a3941a10b7e9cc2b596ff3e423a18156
F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
F test/permutations.test 8bd6b6db541e2a7f9bb894be99ef5c00526b23762c4a00c574e1cba697495125
F test/permutations.test 4268ad170a788ec1c0e3179786ffdaac6d8a022d4f849587a3378945a48fdde1
F test/pg_common.tcl 3b27542224db1e713ae387459b5d117c836a5f6e328846922993b6d2b7640d9f
F test/pragma.test 57a36226218c03cfb381019fe43234b2cefbd8a1f12825514f906a17ccf7991e
F test/pragma2.test e5d5c176360c321344249354c0c16aec46214c9f
@ -1399,7 +1399,7 @@ F test/recover.test fd5199f928757cb308661b5fdca1abc19398a798ff7f24b57c3071e9f8e0
F test/regexp1.test 8f2a8bc1569666e29a4cee6c1a666cd224eb6d50e2470d1dc1df995170f3e0f1
F test/regexp2.test 55ed41da802b0e284ac7e2fe944be3948f93ff25abbca0361a609acfed1368b5
F test/reindex.test cd9d6021729910ece82267b4f5e1b5ac2911a7566c43b43c176a6a4732e2118d
F test/releasetest_data.tcl c8cf85aeb313a771e18dae01396f5ca70e85d4574df681990629b1103f185afe
F test/releasetest_data.tcl 693e0ab5c07100d749250bf0b60abbd436525ac44fa345eab12cd09c9d5301d5
F test/resetdb.test 54c06f18bc832ac6d6319e5ab23d5c8dd49fdbeec7c696d791682a8006bd5fc3
F test/resolver01.test f4022acafda7f4d40eca94dbf16bc5fc4ac30ceb
F test/returning1.test db532cde29d6aebbc48c6ddc3149b30476f8e69ca7a2c4b53986c7635e6fd8ec
@ -1562,7 +1562,7 @@ F test/temptable2.test 76821347810ecc88203e6ef0dd6897b6036ac788e9dd3e6b04fd4d163
F test/temptable3.test d11a0974e52b347e45ee54ef1923c91ed91e4637
F test/temptrigger.test 38f0ca479b1822d3117069e014daabcaacefffcc
F test/tester.tcl 68454ef88508c196d19e8694daa27bff7107a91857799eaa12f417188ae53ede
F test/testrunner.tcl 59490f189cac99b16b0376d0cc0a7ecfb753a84b89c9f4c361af337d88db53ac
F test/testrunner.tcl 3d34b921c035e36a65aa83ff86c90e025e5f49a7b60a1c659295ce203ec43d37
F test/testrunner_data.tcl 8169c68654ac8906833b8a6aadca973358a441ebf88270dd05c153e5f96f76b8
F test/thread001.test a0985c117eab62c0c65526e9fa5d1360dd1cac5b03bde223902763274ce21899
F test/thread002.test c24c83408e35ba5a952a3638b7ac03ccdf1ce4409289c54a050ac4c5f1de7502
@ -2051,8 +2051,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P 8a6b0c24937e855b710f97b4aea973eff53e6d43e1182842731547aa4b37db2a
R 43c88f4a8c1b73283f31097d1c50c3b5
U stephan
Z 44f8c32555ee16d703264cb55479403e
P 3bc0693c4633f545f09dbee702e25354504b20836373a068447e6c61cb2ebd79
R 5871751fcc353cdba4cb88e039a842ae
U dan
Z 6d27e9e4f744d4df09f5cac7701d8a3b
# Remove this line to create a well-formed Fossil manifest.

View File

@ -1 +1 @@
3bc0693c4633f545f09dbee702e25354504b20836373a068447e6c61cb2ebd79
af354fbc0be06d5792a1e712ec4e9cec4c6cb4521335aa31f8f51ca5c94499ae

View File

@ -10,9 +10,11 @@
#***********************************************************************
#
set testdir [file dirname $argv0]
source $testdir/tester.tcl
db close
if {[info vars ::testdir]==""} {
set testdir [file dirname $argv0]
source $testdir/tester.tcl
db close
}
#-------------------------------------------------------------------------
# test_suite NAME OPTIONS
@ -813,117 +815,111 @@ test_suite "inmemory_journal" -description {
recoverpgsz.test
}]
ifcapable mem3 {
test_suite "memsys3" -description {
Run tests using the allocator in mem3.c.
} -files [test_set $::allquicktests -exclude {
autovacuum.test delete3.test manydb.test
bigrow.test incrblob2.test memdb.test
bitvec.test index2.test memsubsys1.test
capi3c.test ioerr.test memsubsys2.test
capi3.test join3.test pagesize.test
collate5.test limit.test backup_ioerr.test
backup_malloc.test
}] -initialize {
catch {db close}
sqlite3_reset_auto_extension
sqlite3_shutdown
sqlite3_config_heap 25000000 0
sqlite3_config_lookaside 0 0
ifcapable mem5 {
# If both memsys3 and memsys5 are enabled in the build, the call to
# [sqlite3_config_heap] will initialize the system to use memsys5.
# The following overrides this preference and installs the memsys3
# allocator.
sqlite3_install_memsys3
}
install_malloc_faultsim 1
sqlite3_initialize
autoinstall_test_functions
} -shutdown {
catch {db close}
sqlite3_shutdown
sqlite3_config_heap 0 0
sqlite3_config_lookaside 100 500
install_malloc_faultsim 1
sqlite3_initialize
autoinstall_test_functions
test_suite "memsys3" -description {
Run tests using the allocator in mem3.c.
} -files [test_set $::allquicktests -exclude {
autovacuum.test delete3.test manydb.test
bigrow.test incrblob2.test memdb.test
bitvec.test index2.test memsubsys1.test
capi3c.test ioerr.test memsubsys2.test
capi3.test join3.test pagesize.test
collate5.test limit.test backup_ioerr.test
backup_malloc.test
}] -initialize {
catch {db close}
sqlite3_reset_auto_extension
sqlite3_shutdown
sqlite3_config_heap 25000000 0
sqlite3_config_lookaside 0 0
ifcapable mem5 {
# If both memsys3 and memsys5 are enabled in the build, the call to
# [sqlite3_config_heap] will initialize the system to use memsys5.
# The following overrides this preference and installs the memsys3
# allocator.
sqlite3_install_memsys3
}
install_malloc_faultsim 1
sqlite3_initialize
autoinstall_test_functions
} -shutdown {
catch {db close}
sqlite3_shutdown
sqlite3_config_heap 0 0
sqlite3_config_lookaside 100 500
install_malloc_faultsim 1
sqlite3_initialize
autoinstall_test_functions
}
ifcapable mem5 {
test_suite "memsys5" -description {
Run tests using the allocator in mem5.c.
} -files [test_set $::allquicktests -exclude {
autovacuum.test delete3.test manydb.test
bigrow.test incrblob2.test memdb.test
bitvec.test index2.test memsubsys1.test
capi3c.test ioerr.test memsubsys2.test
capi3.test join3.test pagesize.test
collate5.test limit.test zeroblob.test
}] -initialize {
catch {db close}
sqlite3_shutdown
sqlite3_config_heap 25000000 64
sqlite3_config_lookaside 0 0
install_malloc_faultsim 1
sqlite3_initialize
autoinstall_test_functions
} -shutdown {
catch {db close}
sqlite3_shutdown
sqlite3_config_heap 0 0
sqlite3_config_lookaside 100 500
install_malloc_faultsim 1
sqlite3_initialize
autoinstall_test_functions
}
test_suite "memsys5-2" -description {
Run tests using the allocator in mem5.c in a different configuration.
} -files {
select1.test
} -initialize {
catch {db close}
sqlite3_shutdown
sqlite3_config_memstatus 0
sqlite3_config_heap 40000000 16
sqlite3_config_lookaside 0 0
install_malloc_faultsim 1
sqlite3_initialize
autoinstall_test_functions
} -shutdown {
catch {db close}
sqlite3_shutdown
sqlite3_config_heap 0 0
sqlite3_config_lookaside 100 500
install_malloc_faultsim 1
sqlite3_initialize
autoinstall_test_functions
}
test_suite "memsys5" -description {
Run tests using the allocator in mem5.c.
} -files [test_set $::allquicktests -exclude {
autovacuum.test delete3.test manydb.test
bigrow.test incrblob2.test memdb.test
bitvec.test index2.test memsubsys1.test
capi3c.test ioerr.test memsubsys2.test
capi3.test join3.test pagesize.test
collate5.test limit.test zeroblob.test
}] -initialize {
catch {db close}
sqlite3_shutdown
sqlite3_config_heap 25000000 64
sqlite3_config_lookaside 0 0
install_malloc_faultsim 1
sqlite3_initialize
autoinstall_test_functions
} -shutdown {
catch {db close}
sqlite3_shutdown
sqlite3_config_heap 0 0
sqlite3_config_lookaside 100 500
install_malloc_faultsim 1
sqlite3_initialize
autoinstall_test_functions
}
ifcapable threadsafe {
test_suite "no_mutex_try" -description {
The sqlite3_mutex_try() interface always fails
} -files [
test_set $::allquicktests -exclude mutex1.test mutex2.test
] -initialize {
catch {db close}
sqlite3_shutdown
install_mutex_counters 1
set ::disable_mutex_try 1
sqlite3_initialize
autoinstall_test_functions
} -shutdown {
catch {db close}
catch {db2 close}
catch {db3 close}
sqlite3_shutdown
install_mutex_counters 0
sqlite3_initialize
autoinstall_test_functions
}
test_suite "memsys5-2" -description {
Run tests using the allocator in mem5.c in a different configuration.
} -files {
select1.test
} -initialize {
catch {db close}
sqlite3_shutdown
sqlite3_config_memstatus 0
sqlite3_config_heap 40000000 16
sqlite3_config_lookaside 0 0
install_malloc_faultsim 1
sqlite3_initialize
autoinstall_test_functions
} -shutdown {
catch {db close}
sqlite3_shutdown
sqlite3_config_heap 0 0
sqlite3_config_lookaside 100 500
install_malloc_faultsim 1
sqlite3_initialize
autoinstall_test_functions
}
test_suite "no_mutex_try" -description {
The sqlite3_mutex_try() interface always fails
} -files [
test_set $::allquicktests -exclude mutex1.test mutex2.test
] -initialize {
catch {db close}
sqlite3_shutdown
install_mutex_counters 1
set ::disable_mutex_try 1
sqlite3_initialize
autoinstall_test_functions
} -shutdown {
catch {db close}
catch {db2 close}
catch {db3 close}
sqlite3_shutdown
install_mutex_counters 0
sqlite3_initialize
autoinstall_test_functions
}
# run_tests "crash_safe_append" -description {

View File

@ -53,6 +53,12 @@ array set ::Configs [strip_comments {
--enable-session
-DSQLITE_ENABLE_RBU
}
"All-Debug" {
--enable-debug --enable-all
}
"All-O0" {
-O0 --enable-all
}
"Sanitize" {
CC=clang -fsanitize=address,undefined
-DSQLITE_ENABLE_STAT4

View File

@ -1,6 +1,6 @@
set dir [pwd]
set testdir [file dirname $argv0]
set testdir [file normalize [file dirname $argv0]]
set saved $argv
set argv [list]
source [file join $testdir testrunner_data.tcl]
@ -8,6 +8,16 @@ source [file join $testdir permutations.test]
set argv $saved
cd $dir
# Usually this script is run by [testfixture]. But it can also be run
# by a regular [tclsh]. For these cases, load the sqlite3 package and
# implement a [clock_milliseconds] command.
package require sqlite3
if {[info commands clock_milliseconds]==""} {
proc clock_milliseconds {} {
clock milliseconds
}
}
#-------------------------------------------------------------------------
# Usage:
#
@ -152,7 +162,7 @@ set TRG(schema) {
state TEXT CHECK( state IN ('', 'ready', 'running', 'done', 'failed') ),
time INTEGER, -- Time in ms
output TEXT, -- full output of test script
priority AS ((config='make') + ((config='build')*2) + (slow*4)),
priority AS (((config='make')*3) + (config='build') + (slow*2)),
jobtype AS (
CASE WHEN config IN ('build', 'make') THEN config ELSE 'script' END
),
@ -181,10 +191,11 @@ if {[llength $argv]==2
set script [file normalize [lindex $argv 1]]
set ::argv [list]
set testdir [file dirname $argv0]
source $::testdir/tester.tcl
if {$permutation=="full"} {
set testdir [file dirname $argv0]
source $::testdir/tester.tcl
unset -nocomplain ::G(isquick)
reset_db
@ -289,9 +300,13 @@ if {[llength $argv]==1
set cmdline [mydb one { SELECT value FROM config WHERE name='cmdline' }]
set nJob [mydb one { SELECT value FROM config WHERE name='njob' }]
set tm [expr [clock_milliseconds] - [mydb one {
SELECT value FROM config WHERE name='start'
}]]
set now [clock_milliseconds]
set tm [mydb one {
SELECT
COALESCE((SELECT value FROM config WHERE name='end'), $now) -
(SELECT value FROM config WHERE name='start')
}]
set total 0
foreach s {"" ready running done failed} { set S($s) 0 }
@ -315,7 +330,6 @@ if {[llength $argv]==1
set srcdir [file dirname [file dirname $TRG(info_script)]]
if {$S(running)>0} {
puts "Running: "
set now [clock_milliseconds]
mydb eval {
SELECT build, config, filename, time FROM script WHERE state='running'
ORDER BY time
@ -411,8 +425,6 @@ proc dirs_allocDir {} {
return $iRet
}
set testdir [file dirname $argv0]
# Check that directory $dir exists. If it does not, create it. If
# it does, delete its contents.
#
@ -449,7 +461,16 @@ proc testset_patternlist {patternlist} {
set first [lindex $patternlist 0]
if {$first=="release"} {
if {$first=="mdevtest"} {
set patternlist [lrange $patternlist 1 end]
foreach b {All-Debug All-O0} {
lappend testset [list $b build testfixture]
lappend testset [list $b make fuzztest]
testset_append testset $b veryquick $patternlist
}
} elseif {$first=="release"} {
set platform $::TRG(platform)
set patternlist [lrange $patternlist 1 end]
@ -865,6 +886,8 @@ proc run_testset {} {
one_line_report
r_write_db {
set tm [clock_milliseconds]
trdb eval { REPLACE INTO config VALUES('end', $tm ); }
set nErr [trdb one {SELECT count(*) FROM script WHERE state='failed'}]
if {$nErr>0} {
puts "$nErr failures:"