]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add "mdevtest" target to makefiles. Equivalent to running "devtest" on both debug...
authordan <Dan Kennedy>
Sat, 12 Aug 2023 17:36:57 +0000 (17:36 +0000)
committerdan <Dan Kennedy>
Sat, 12 Aug 2023 17:36:57 +0000 (17:36 +0000)
FossilOrigin-Name: af354fbc0be06d5792a1e712ec4e9cec4c6cb4521335aa31f8f51ca5c94499ae

Makefile.in
Makefile.msc
main.mk
manifest
manifest.uuid
test/permutations.test
test/releasetest_data.tcl
test/testrunner.tcl

index 70a67f00baf651d76c729a09662fc1dc80fe2a20..6907ceee86f86bc008ee700a3ad188a89b098ecc 100644 (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)
index 6fc4c833907599659ab854afd7deaf1e77123924..ab70e80b9c6470731eb9aed3581e0b34b7d013bc 100644 (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
diff --git a/main.mk b/main.mk
index e2ba339506aae8ab4fc2de95a1592b41bb78b3d4..75730b1a601ad33a96cc8aebb538c98053de7096 100644 (file)
--- a/main.mk
+++ b/main.mk
@@ -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.
 #
index 59726575cb085619902d82028de38c98c5a589c0..37bd44e2eef57559f27486f3d43ebba8f7d20424 100644 (file)
--- a/manifest
+++ b/manifest
@@ -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.
index 1f635467da700aad376e9fbe2b0fb05fbb600a6c..70453deab00ec5246e4682b7b4941e58134f520c 100644 (file)
@@ -1 +1 @@
-3bc0693c4633f545f09dbee702e25354504b20836373a068447e6c61cb2ebd79
\ No newline at end of file
+af354fbc0be06d5792a1e712ec4e9cec4c6cb4521335aa31f8f51ca5c94499ae
\ No newline at end of file
index eb173f79b94318b74717f6d3382cd68078e9128d..9bd8c9445209f2e24565e99e6a05ce1216c2f0a0 100644 (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
@@ -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" -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 {
index 074481299038dfa7dd4da51e7bdb9c574331ec40..89deb860d920cbbd7a1b18c021793f91f78a471c 100644 (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
index 4e21ce08ab74d33a7e4cea18228afb3229ea1451..a51c7ae42aec7b7c0a93594a93f047e0cac7d971 100644 (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:"