mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
Add the --fuzztest option to testrunner.tcl. Also, have it print whitespace over the top of the old report line before writing the new.
FossilOrigin-Name: d83ce01fe1f21edcc93ad4c6308026156f235bab75e16e15389e27ad388fb274
This commit is contained in:
12
manifest
12
manifest
@ -1,5 +1,5 @@
|
|||||||
C Fix\sproblems\swith\stest\sscripts\spreventing\sthem\sfrom\srunning\swith\sSQLITE_DEFAULT_MEMSTATUS=0\sbuilds.\sOr\sbuilds\swithout\sSQLITE_ENABLE_STAT4.
|
C Add\sthe\s--fuzztest\soption\sto\stestrunner.tcl.\sAlso,\shave\sit\sprint\swhitespace\sover\sthe\stop\sof\sthe\sold\sreport\sline\sbefore\swriting\sthe\snew.
|
||||||
D 2023-02-06T11:02:31.024
|
D 2023-02-06T11:43:22.002
|
||||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||||
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
||||||
@ -1566,7 +1566,7 @@ F test/temptable2.test 76821347810ecc88203e6ef0dd6897b6036ac788e9dd3e6b04fd4d163
|
|||||||
F test/temptable3.test d11a0974e52b347e45ee54ef1923c91ed91e4637
|
F test/temptable3.test d11a0974e52b347e45ee54ef1923c91ed91e4637
|
||||||
F test/temptrigger.test 38f0ca479b1822d3117069e014daabcaacefffcc
|
F test/temptrigger.test 38f0ca479b1822d3117069e014daabcaacefffcc
|
||||||
F test/tester.tcl 8d54d40a55e12554b4509bc12078b201b233c8e842a7543629094a21b1ba956d
|
F test/tester.tcl 8d54d40a55e12554b4509bc12078b201b233c8e842a7543629094a21b1ba956d
|
||||||
F test/testrunner.tcl 3723cfa0e01b69bc3c6a4c2f4a35f8fcec23e3cd048c5f827fcf15b189d2a92a
|
F test/testrunner.tcl fb6249e9538470959b4957a39e80376a2fb9f157c67dde2c020273a2b96af947
|
||||||
F test/testrunner_data.tcl 8169c68654ac8906833b8a6aadca973358a441ebf88270dd05c153e5f96f76b8
|
F test/testrunner_data.tcl 8169c68654ac8906833b8a6aadca973358a441ebf88270dd05c153e5f96f76b8
|
||||||
F test/thread001.test a0985c117eab62c0c65526e9fa5d1360dd1cac5b03bde223902763274ce21899
|
F test/thread001.test a0985c117eab62c0c65526e9fa5d1360dd1cac5b03bde223902763274ce21899
|
||||||
F test/thread002.test c24c83408e35ba5a952a3638b7ac03ccdf1ce4409289c54a050ac4c5f1de7502
|
F test/thread002.test c24c83408e35ba5a952a3638b7ac03ccdf1ce4409289c54a050ac4c5f1de7502
|
||||||
@ -2048,8 +2048,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P 81c118d90b281b30f40b3eeefaeb2c8350aa40080b4fe7de8f21d263986c6acb
|
P c0fbc89ed26b6eb361c1a05e2fb0d78d101fe2daf2947bbe5e0e58e0c2a779a2
|
||||||
R 68c36f7c3bbb0cdfa62cb3d6ed79f926
|
R ca675ab264210e4a6c7241a547c972b1
|
||||||
U dan
|
U dan
|
||||||
Z c7cd20985880e33926ac0c89209760a5
|
Z a02e7b99f420dffa9a6626f8f58a89b3
|
||||||
# Remove this line to create a well-formed Fossil manifest.
|
# Remove this line to create a well-formed Fossil manifest.
|
||||||
|
@ -1 +1 @@
|
|||||||
c0fbc89ed26b6eb361c1a05e2fb0d78d101fe2daf2947bbe5e0e58e0c2a779a2
|
d83ce01fe1f21edcc93ad4c6308026156f235bab75e16e15389e27ad388fb274
|
@ -23,6 +23,7 @@ Usage:
|
|||||||
|
|
||||||
where SWITCHES are:
|
where SWITCHES are:
|
||||||
--jobs NUMBER-OF-JOBS
|
--jobs NUMBER-OF-JOBS
|
||||||
|
--fuzztest
|
||||||
|
|
||||||
Interesting values for PERMUTATION are:
|
Interesting values for PERMUTATION are:
|
||||||
|
|
||||||
@ -45,6 +46,11 @@ If a PERMUTATION is specified and is followed by the path to a Tcl script
|
|||||||
instead of a list of patterns, then that single Tcl test script is run
|
instead of a list of patterns, then that single Tcl test script is run
|
||||||
with the specified permutation.
|
with the specified permutation.
|
||||||
|
|
||||||
|
The --fuzztest option is ignored if the PERMUTATION is "release". Otherwise,
|
||||||
|
if it is present, then "make -C <dir> fuzztest" is run as part of the tests,
|
||||||
|
where <dir> is the directory containing the testfixture binary used to
|
||||||
|
run the script.
|
||||||
|
|
||||||
The "status" and "njob" commands are designed to be run from the same
|
The "status" and "njob" commands are designed to be run from the same
|
||||||
directory as a running testrunner.tcl script that is running tests. The
|
directory as a running testrunner.tcl script that is running tests. The
|
||||||
"status" command prints a report describing the current state and progress
|
"status" command prints a report describing the current state and progress
|
||||||
@ -99,6 +105,7 @@ set TRG(nJob) [default_njob] ;# Default number of helper processes
|
|||||||
set TRG(patternlist) [list]
|
set TRG(patternlist) [list]
|
||||||
set TRG(cmdline) $argv
|
set TRG(cmdline) $argv
|
||||||
set TRG(reporttime) 2000
|
set TRG(reporttime) 2000
|
||||||
|
set TRG(fuzztest) 0 ;# is the fuzztest option present.
|
||||||
|
|
||||||
switch -nocase -glob -- $tcl_platform(os) {
|
switch -nocase -glob -- $tcl_platform(os) {
|
||||||
*darwin* {
|
*darwin* {
|
||||||
@ -114,7 +121,7 @@ switch -nocase -glob -- $tcl_platform(os) {
|
|||||||
*win* {
|
*win* {
|
||||||
set TRG(platform) win
|
set TRG(platform) win
|
||||||
set TRG(make) make.bat
|
set TRG(make) make.bat
|
||||||
set TRG(makecmd) make.bat
|
set TRG(makecmd) make.bat
|
||||||
}
|
}
|
||||||
default {
|
default {
|
||||||
error "cannot determine platform!"
|
error "cannot determine platform!"
|
||||||
@ -335,6 +342,8 @@ for {set ii 0} {$ii < [llength $argv]} {incr ii} {
|
|||||||
incr ii
|
incr ii
|
||||||
set TRG(nJob) [lindex $argv $ii]
|
set TRG(nJob) [lindex $argv $ii]
|
||||||
if {$isLast} { usage }
|
if {$isLast} { usage }
|
||||||
|
} elseif {($n>2 && [string match "$a*" --fuzztest]) || $a=="-f"} {
|
||||||
|
set TRG(fuzztest) 1
|
||||||
} else {
|
} else {
|
||||||
usage
|
usage
|
||||||
}
|
}
|
||||||
@ -422,6 +431,7 @@ proc build_to_dirname {bname} {
|
|||||||
# {BUILD CONFIG FILENAME} {BUILD CONFIG FILENAME} ...
|
# {BUILD CONFIG FILENAME} {BUILD CONFIG FILENAME} ...
|
||||||
#
|
#
|
||||||
proc testset_patternlist {patternlist} {
|
proc testset_patternlist {patternlist} {
|
||||||
|
global TRG
|
||||||
|
|
||||||
set testset [list] ;# return value
|
set testset [list] ;# return value
|
||||||
|
|
||||||
@ -452,6 +462,8 @@ proc testset_patternlist {patternlist} {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set TRG(fuzztest) 0 ;# ignore --fuzztest option in this case
|
||||||
|
|
||||||
} elseif {$first=="all"} {
|
} elseif {$first=="all"} {
|
||||||
|
|
||||||
set clist [trd_all_configs]
|
set clist [trd_all_configs]
|
||||||
@ -468,6 +480,10 @@ proc testset_patternlist {patternlist} {
|
|||||||
} else {
|
} else {
|
||||||
testset_append testset "" full $patternlist
|
testset_append testset "" full $patternlist
|
||||||
}
|
}
|
||||||
|
if {$TRG(fuzztest)} {
|
||||||
|
if {$TRG(platform)=="win"} { error "todo" }
|
||||||
|
lappend testset [list "" make fuzztest]
|
||||||
|
}
|
||||||
|
|
||||||
set testset
|
set testset
|
||||||
}
|
}
|
||||||
@ -586,6 +602,11 @@ proc make_new_testset {} {
|
|||||||
close $fd
|
close $fd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if {$c=="make" && $b==""} {
|
||||||
|
# --fuzztest option
|
||||||
|
set slow 1
|
||||||
|
}
|
||||||
|
|
||||||
if {$c=="veryquick"} {
|
if {$c=="veryquick"} {
|
||||||
set c ""
|
set c ""
|
||||||
}
|
}
|
||||||
@ -698,9 +719,20 @@ proc launch_another_job {iJob} {
|
|||||||
set dir $builddir
|
set dir $builddir
|
||||||
|
|
||||||
} elseif {$c=="make"} {
|
} elseif {$c=="make"} {
|
||||||
set builddir [build_to_dirname $b]
|
if {$b==""} {
|
||||||
copy_dir $builddir $dir
|
if {$f!="fuzztest"} { error "corruption in testrunner.db!" }
|
||||||
set cmd "$TRG(makecmd) $f"
|
# Special case - run [make fuzztest]
|
||||||
|
set makedir [file dirname $testfixture]
|
||||||
|
if {$TRG(platform)=="win"} {
|
||||||
|
error "how?"
|
||||||
|
} else {
|
||||||
|
set cmd [list make -C $makedir fuzztest]
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
set builddir [build_to_dirname $b]
|
||||||
|
copy_dir $builddir $dir
|
||||||
|
set cmd "$TRG(makecmd) $f"
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if {$b==""} {
|
if {$b==""} {
|
||||||
set testfixture [info nameofexec]
|
set testfixture [info nameofexec]
|
||||||
@ -763,8 +795,14 @@ proc one_line_report {} {
|
|||||||
lappend text "$j: ($fin/$t($j)) f=$v(failed,$j) r=$v(running,$j)"
|
lappend text "$j: ($fin/$t($j)) f=$v(failed,$j) r=$v(running,$j)"
|
||||||
}
|
}
|
||||||
|
|
||||||
puts -nonewline "${tm}s: [join $text { || }]\r"
|
if {[info exists TRG(reportlength)]} {
|
||||||
|
puts -nonewline "[string repeat " " $TRG(reportlength)]\r"
|
||||||
|
}
|
||||||
|
set report "${tm}s: [join $text { || }]"
|
||||||
|
set TRG(reportlength) [string length $report]
|
||||||
|
puts -nonewline "$report\r"
|
||||||
flush stdout
|
flush stdout
|
||||||
|
|
||||||
after $TRG(reporttime) one_line_report
|
after $TRG(reporttime) one_line_report
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user