1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-10-23 21:49:02 +03:00

Enhance testrunner.tcl so that a PATTERN argument that begins with "~" is

an "anti-pattern".  Only run tests that match one or more patterns if there
are any patterns *and* do not match any anti-pattern.

FossilOrigin-Name: c313d91bb67b56be2db46194c3baa5a72b469595de3b2abe249612838dc175e4
This commit is contained in:
drh
2026-04-03 19:48:01 +00:00
parent bb6d2a5f07
commit 7ff8b558e8
3 changed files with 34 additions and 12 deletions

View File

@@ -1,5 +1,5 @@
C configure\sscript:\sreplace\stwo\s'file\snormalize'\scalls\swith\sfile-normalize\s(a\stcl/jimsh\scompatibility\sissue)\sto\sfix\s--with-linenoise.\sProblem\sreported\sin\s[forum:ce688d13793bd78f|forum\spost\sce688d13793bd78f].
D 2026-04-03T13:54:48.361
C Enhance\stestrunner.tcl\sso\sthat\sa\sPATTERN\sargument\sthat\sbegins\swith\s"~"\sis\nan\s"anti-pattern".\s\sOnly\srun\stests\sthat\smatch\sone\sor\smore\spatterns\sif\sthere\nare\sany\spatterns\s*and*\sdo\snot\smatch\sany\santi-pattern.
D 2026-04-03T19:48:01.124
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -1714,7 +1714,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 78d67079fc39caf2af3fd9d4c30bdac78dae7ec50b9fc802835e7a5189581e07 x
F test/testrunner.tcl 6b232f0d4825dec8b967754503080fc9609fad077f582d02f86bd2d95bec4110 x
F test/testrunner_data.tcl 078e251983c8fc573567125147655f68132210f226c92922daf21fb913779717
F test/testrunner_estwork.tcl 81e2ae10238f50540f42fbf2d94913052a99bfb494b69e546506323f195dcff9
F test/thread001.test a0985c117eab62c0c65526e9fa5d1360dd1cac5b03bde223902763274ce21899
@@ -2197,8 +2197,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
P 1387b5819085146cafb0e8740410faaa48bfb5aefc78ff763aaa8e85744d48b3
R 535d7e5efcb850895cffdd42f2a91851
U stephan
Z 0526328b3729dcce012da94c6ab86937
P 2be1c5a3e47f1276b9f0a4771f2d5fb0bc1ccb907c855caa04d757b4145533f5
R fb320f829f7981007da6fed7c98fe352
U drh
Z 2a88cf0b8fe57448638ae0fcc1526344
# Remove this line to create a well-formed Fossil manifest.

View File

@@ -1 +1 @@
2be1c5a3e47f1276b9f0a4771f2d5fb0bc1ccb907c855caa04d757b4145533f5
c313d91bb67b56be2db46194c3baa5a72b469595de3b2abe249612838dc175e4

View File

@@ -141,7 +141,10 @@ are run. Otherwise, each pattern is interpreted as a glob pattern. Only
those tcl tests for which the final component of the filename matches at
least one specified pattern are run. The glob wildcard '*' is prepended
to the pattern if it does not start with '^' and appended to every
pattern that does not end with '$'.
pattern that does not end with '$'. If PATTERN begins with "~", then it
is an anti-pattern that only matches tests that do not match PATTERN.
Tests or only run if they match one or more patterns and match no
anti-patterns.
If no PATTERN arguments are present, then various fuzztest, threadtest
and other tests are run as part of the "release" permutation. These are
@@ -1124,10 +1127,21 @@ proc add_job {args} {
#
# An empty patternlist matches everything
#
# Entries of patternlist that begin with "~" mean "match anything that
# does not match the following pattern". For example, a patternlist
# of {fuzzcheck ~san} will match "fuzzcheck" but not "fuzzcheck-asan".
#
proc job_matches_any_pattern {patternlist jobcmd} {
set bMatch 0
set bMiss 0
if {[llength $patternlist]==0} {return 1}
foreach p $patternlist {
if {[string index $p 0] eq "~"} {
set p [string range $p 1 end]
set not 1
} else {
set not 0
}
set p [string trim $p *]
if {[string index $p 0]=="^"} {
set p [string range $p 1 end]
@@ -1139,11 +1153,19 @@ proc job_matches_any_pattern {patternlist jobcmd} {
} else {
set p "$p*"
}
if {[string match $p $jobcmd]} {
set bMatch 1
break
if {$not} {
if {[string match $p $jobcmd]} {return 0}
} else {
if {[string match $p $jobcmd]} {
set bMatch 1
} else {
set bMiss 1
}
}
}
if {!$bMiss} {
set bMatch 1
}
return $bMatch
}