#
devtest: testfixture$(TEXE) fuzztest testrunner
+mdevtest:
+ $(TCLSH_CMD) $(TOP)/test/testrunner.tcl mdevtest
+
# Testing for a release
#
releasetest: testfixture$(TEXE)
#
devtest: testfixture.exe fuzztest testrunner
+mdevtest:
+ $(TCLSH_CMD) $(TOP)\test\testrunner.tcl mdevtest
+
# Testing for a release
#
releasetest: testfixture.exe fuzztest
#
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.
#
-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
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
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
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
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
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.
-3bc0693c4633f545f09dbee702e25354504b20836373a068447e6c61cb2ebd79
\ No newline at end of file
+af354fbc0be06d5792a1e712ec4e9cec4c6cb4521335aa31f8f51ca5c94499ae
\ No newline at end of file
#***********************************************************************
#
-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
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" -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-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
}
-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 "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 {
--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
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]
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:
#
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
),
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
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 }
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
return $iRet
}
-set testdir [file dirname $argv0]
-
# Check that directory $dir exists. If it does not, create it. If
# it does, delete its contents.
#
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]
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:"