]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix testrunner.tcl so that it honors pattern matches in non-testfixture
authordrh <>
Mon, 28 Apr 2025 16:17:17 +0000 (16:17 +0000)
committerdrh <>
Mon, 28 Apr 2025 16:17:17 +0000 (16:17 +0000)
tests, such as fuzzcheck and sessionfuzz.

FossilOrigin-Name: 81857474fe90f50b760c22d61a6ad477642dabe1052390cd1614dcec8adb1376

manifest
manifest.uuid
test/testrunner.tcl

index 9fd5d914af243fab14d620a4ac3f77327429b9a2..cd36ef9f65b79e915e518cec2e2e869bdbd59dff 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\sa\sstray\sblank\sline\sfrom\sthe\stest/testrunner.tcl\sscript.
-D 2025-04-28T15:00:28.623
+C Fix\stestrunner.tcl\sso\sthat\sit\shonors\spattern\smatches\sin\snon-testfixture\ntests,\ssuch\sas\sfuzzcheck\sand\ssessionfuzz.
+D 2025-04-28T16:17:17.167
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -1734,7 +1734,7 @@ F test/temptable2.test 76821347810ecc88203e6ef0dd6897b6036ac788e9dd3e6b04fd4d163
 F test/temptable3.test d11a0974e52b347e45ee54ef1923c91ed91e4637
 F test/temptrigger.test 38f0ca479b1822d3117069e014daabcaacefffcc
 F test/tester.tcl 463ae33b8bf75ac77451df19bd65e7c415c2e9891227c7c9e657d0a2d8e1074a
-F test/testrunner.tcl de6fe8e645b864b49bd20d2dd968cb5863313ff5138ba7e22841d99e8054cf56 x
+F test/testrunner.tcl 9cf2bd5755077b710b4675ddd20e88271a6baaf8d94c19dbb7021798cec7d537 x
 F test/testrunner_data.tcl 07f2d36a6321bfd196975aca237db6bba1991032809264a1abeb62e697196d20
 F test/thread001.test a0985c117eab62c0c65526e9fa5d1360dd1cac5b03bde223902763274ce21899
 F test/thread002.test c24c83408e35ba5a952a3638b7ac03ccdf1ce4409289c54a050ac4c5f1de7502
@@ -2207,8 +2207,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 956af8c294ae5b826a5b645922df07dad360290d19bf2b6a7f74d0a783a3e692
-R 13056561c2ba68bd2352898ef95bb642
+P 7d6005b0d17d86d72757f3578872e82fd12f61ac9160a0277e397df09f6338a9
+R 65434eb108e608265878d208220c17e3
 U drh
-Z 8a151df5f2e0c562bd71995175f23f56
+Z 8c6e3b2216a6b6e244ba52b67889d195
 # Remove this line to create a well-formed Fossil manifest.
index 425e5b40bf37e243f59e9ee12f585d72102a2d2e..ddf5a4051da8047319f76e360567024079307448 100644 (file)
@@ -1 +1 @@
-7d6005b0d17d86d72757f3578872e82fd12f61ac9160a0277e397df09f6338a9
+81857474fe90f50b760c22d61a6ad477642dabe1052390cd1614dcec8adb1376
index 051f15d16cfa7c48a7404d24a6001ff26d32522e..479f17868c3e0edb346927ced87758ccd44a412e 100755 (executable)
@@ -1002,6 +1002,35 @@ proc add_job {args} {
 
   trdb last_insert_rowid
 }
+
+# Look to see if $jobcmd matches any of the glob patterns given in
+# $patternlist.  Return true if there is a match.  Return false
+# if no match is seen.
+#
+# An empty patternlist matches everything
+#
+proc job_matches_any_pattern {patternlist jobcmd} {
+  set bMatch 0
+  if {[llength $patternlist]==0} {return 1}
+  foreach p $patternlist {
+    set p [string trim $p *]
+    if {[string index $p 0]=="^"} {
+      set p [string range $p 1 end]
+    } else {
+      set p "*$p"
+    }
+    if {[string index $p end]=="\$"} {
+      set p [string range $p 0 end-1]
+    } else {
+      set p "$p*"
+    }
+    if {[string match $p $jobcmd]} {
+      set bMatch 1
+      break
+    }
+  }
+  return $bMatch
+}
        
 
 # Argument $build is either an empty string, or else a list of length 3 
@@ -1032,26 +1061,8 @@ proc add_tcl_jobs {build config patternlist {shelldepid ""}} {
   # The ::testspec array is populated by permutations.test
   foreach f [dict get $::testspec($config) -files] {
 
-    if {[llength $patternlist]>0} {
-      set bMatch 0
-      foreach p $patternlist {
-        set p [string trim $p *]
-        if {[string index $p 0]=="^"} {
-          set p [string range $p 1 end]
-        } else {
-          set p "*$p"
-        }
-        if {[string index $p end]=="\$"} {
-          set p [string range $p 0 end-1]
-        } else {
-          set p "$p*"
-        }
-        if {[string match $p "$config [file tail $f]"]} {
-          set bMatch 1
-          break
-        }
-      }
-      if {$bMatch==0} continue
+    if {![job_matches_any_pattern $patternlist "$config [file tail $f]"]} {
+      continue
     }
 
     if {[file pathtype $f]!="absolute"} { set f [file join $::testdir $f] }
@@ -1145,26 +1156,29 @@ proc add_make_job {bld target} {
     -priority 1
 }
 
-proc add_fuzztest_jobs {buildname} {
+proc add_fuzztest_jobs {buildname patternlist} {
 
   foreach {interpreter scripts} [trd_fuzztest_data] {
+    set bldDone 0
     set subcmd [lrange $interpreter 1 end]
     set interpreter [lindex $interpreter 0]
 
-    set bld [add_build_job $buildname $interpreter]
-    foreach {depid dirname displayname} $bld {}
-
     foreach s $scripts {
 
       # Fuzz data files fuzzdata1.db and fuzzdata2.db are larger than
       # the others. So ensure that these are run as a higher priority.
       set tail [file tail $s]
+      if {![job_matches_any_pattern $patternlist "fuzzcheck $tail"]} continue
+      if {!$bldDone} {
+        set bld [add_build_job $buildname $interpreter]
+        foreach {depid dirname displayname} $bld {}
+        set bldDone 1
+      }
       if {$tail=="fuzzdata1.db" || $tail=="fuzzdata2.db"} {
         set priority 5
       } else {
         set priority 1
       }
-
       add_job                                                   \
         -displaytype fuzz                                       \
         -displayname "$buildname $interpreter $tail"            \
@@ -1200,9 +1214,7 @@ proc add_devtest_jobs {lBld patternlist} {
   foreach b $lBld {
     set bld [add_build_job $b $TRG(testfixture)]
     add_tcl_jobs $bld veryquick $patternlist SHELL
-    if {$patternlist==""} {
-      add_fuzztest_jobs $b
-    }
+    add_fuzztest_jobs $b $patternlist
 
     if {[trdb one "SELECT EXISTS (SELECT 1 FROM jobs WHERE depid='SHELL')"]} {
       set sbld [add_shell_build_job $b [lindex $bld 1] [lindex $bld 0]]
@@ -1276,13 +1288,11 @@ proc add_jobs_from_cmdline {patternlist} {
           add_tcl_jobs $bld $c $patternlist SHELL
         }
 
-        if {$patternlist==""} {
-          foreach e [trd_extras $TRG(platform) $b] {
-            if {$e=="fuzztest"} {
-              add_fuzztest_jobs $b
-            } else {
-              add_make_job $bld $e
-            }
+        foreach e [trd_extras $TRG(platform) $b] {
+          if {$e=="fuzztest"} {
+            add_fuzztest_jobs $b $patternlist
+          } elseif {[job_matches_any_pattern $patternlist $e]} {
+            add_make_job $bld $e
           }
         }