]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Improvements to testrunner.tcl: Make C-program tests responsive to the
authordrh <>
Wed, 20 May 2026 00:16:20 +0000 (00:16 +0000)
committerdrh <>
Wed, 20 May 2026 00:16:20 +0000 (00:16 +0000)
pattern list.  Do not remove build steps until the very end when we are
certain that the build step is not required.  The pattern list matches
the exact text of the displayname column of the jobs table.

FossilOrigin-Name: 3f409c0e1be6b71eca92eccf0b9de3ef5923a6a57be49540ebe190fc6a6d06d4

manifest
manifest.uuid
test/testrunner.tcl

index 3a38d04dc4708d620d519c54026f5df29094a4e0..fd4d0cf59dbad49c2f72fe9c53c08971b5774ef2 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\spotential\sbuffer\soverread\sin\sfts5\sthat\scould\soccur\swhen\shandling\scorrupt\srecords.
-D 2026-05-19T20:27:54.708
+C Improvements\sto\stestrunner.tcl:\s\sMake\sC-program\stests\sresponsive\sto\sthe\npattern\slist.\s\sDo\snot\sremove\sbuild\ssteps\suntil\sthe\svery\send\swhen\swe\sare\ncertain\sthat\sthe\sbuild\sstep\sis\snot\srequired.\s\sThe\spattern\slist\smatches\nthe\sexact\stext\sof\sthe\sdisplayname\scolumn\sof\sthe\sjobs\stable.
+D 2026-05-20T00:16:20.863
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -1721,7 +1721,7 @@ F test/temptrigfault.tes fc5918e64f3867156fefe7cfca9d8e1f495134a5229b2b511b0dc11
 F test/temptrigger.test a00f258ed8d21a0e8fd4f322f15e8cfb5cef2e43655670e07a753e3fb4769d61
 F test/tester.tcl 2d943f60200e0a36bcd3f1f0baf181a751cd3604ef6b6bd4c8dc39b4e8a53116
 F test/testloadext.c 862b848783eaed9985fbce46c65cd214664376b549fae252b364d5d1ef350a27
-F test/testrunner.tcl ca474a06ef014260fa2b26489dd7896e0920944a8f4f4beae1339c0a9c862df8 x
+F test/testrunner.tcl 8f9cd46fe10f670f7f1f3430323f6031a13690303bd7810042d4bb20c47c5d9b x
 F test/testrunner_data.tcl 4b3cf036d39c98b83f9289a5c047eb01089c932d4f59a81bf764f6800589b959
 F test/testrunner_estwork.tcl 81e2ae10238f50540f42fbf2d94913052a99bfb494b69e546506323f195dcff9
 F test/thread001.test a0985c117eab62c0c65526e9fa5d1360dd1cac5b03bde223902763274ce21899
@@ -2205,8 +2205,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 0bdeedf56c9d7209d1ea8f950d0ef03c78cbf677528d9d30c5f4ec48c4e1a571
-R ff653f1bd0df57be89423e3ea714f832
-U dan
-Z 1d38bbb8dfe18d91c29fbafebf7a7b6a
+P 70021c3291b38192832c99fa4d8155249dd39f5b26334595c71f5cee66d13ebb
+R bde1cba3c0bba5c618255ba565122029
+U drh
+Z 0437c967c95da1d4038d7af40fe68045
 # Remove this line to create a well-formed Fossil manifest.
index 703040a9e1a16d68a420cf637ec266e6fb029141..fc9ba36db83ab1709ce044c91b24e934ce251d3c 100644 (file)
@@ -1 +1 @@
-70021c3291b38192832c99fa4d8155249dd39f5b26334595c71f5cee66d13ebb
+3f409c0e1be6b71eca92eccf0b9de3ef5923a6a57be49540ebe190fc6a6d06d4
index 377a5167531584148d7f60de02cfa1fe06da3ed6..7bf8b05cf0c0d4eae09cd88d5d850b013e5e079a 100755 (executable)
@@ -1319,10 +1319,6 @@ proc add_tcl_jobs {build config patternlist {shelldepid ""}} {
   # The ::testspec array is populated by permutations.test
   foreach f [dict get $::testspec($config) -files] {
 
-    if {![job_matches_any_pattern $patternlist "$config [file tail $f]"]} {
-      continue
-    }
-
     if {[file pathtype $f]!="absolute"} { set f [file join $::testdir $f] }
     set f [file normalize $f]
 
@@ -1337,6 +1333,10 @@ proc add_tcl_jobs {build config patternlist {shelldepid ""}} {
       set displayname "[lindex $build 2] $displayname"
     }
 
+    if {![job_matches_any_pattern $patternlist $displayname]} {
+      continue
+    }
+
     set lProp [trd_test_script_properties $f]
     set priority 0
     if {[lsearch $lProp slow]>=0} { set priority 2 }
@@ -1352,10 +1352,7 @@ proc add_tcl_jobs {build config patternlist {shelldepid ""}} {
         -cmd $cmd                      \
         -depid $depid                  \
         -priority $priority
-  }
-  if {$ntcljob==0 && [llength $build]>0} {
-    set bldid [lindex $build 0]
-    trdb eval {DELETE FROM jobs WHERE rowid=$bldid}
+
   }
 }
 
@@ -1389,7 +1386,7 @@ proc add_build_job {buildname target {postcmd ""} {depid ""}} {
 # Add jobs to build and run all the *.c files in $testdir/c/ for build
 # configuration $buildname.
 # 
-proc add_c_jobs {buildname} {
+proc add_c_jobs {buildname patternlist} {
   global TRG
 
   set dir [file join $::testdir c]
@@ -1425,6 +1422,9 @@ proc add_c_jobs {buildname} {
       append cmd "AUXTEST=$prg $TRG(makecmd) $prg\n"
       append cmd "./$prg\n"
     }
+    if {![job_matches_any_pattern $patternlist "$prg ($buildname)"]} {
+      continue
+    }
     
     set id [add_job                                \
       -displaytype tcl                             \
@@ -1526,7 +1526,7 @@ proc add_fuzztest_jobs {buildname patternlist} {
         set tail [lrange $s 0 end-1]
         lappend tail [file tail $fname]
       }
-      if {![job_matches_any_pattern $patternlist "$interpreter $tail"]} {
+      if {![job_matches_any_pattern $patternlist "$buildname $interpreter $tail"]} {
         continue
       }
       if {!$bldDone} {
@@ -1685,7 +1685,7 @@ proc add_jobs_from_cmdline {patternlist} {
           }
         }
 
-        add_c_jobs $b
+        add_c_jobs $b $patternlist
       }
     }
 
@@ -2121,6 +2121,15 @@ if {[llength $TRG(patternlist)]==1 && $TRG(patternlist) eq "retest"} {
   handle_retest
 } else {  
   set tm [lindex [time { make_new_testset }] 0]
+  if {[llength $TRG(patternlist)]>0} {
+    r_write_db {
+      trdb eval {
+        DELETE FROM jobs
+         WHERE displaytype='bld'
+           AND NOT EXISTS(SELECT 1 FROM jobs chld WHERE chld.depid=jobs.jobid)
+      }
+    }
+  }
 }
 if {$TRG(explain)} {
   explain_tests