-C Add\stest\scode\sto\sdrop\san\sfts5\stable\swith\scorrupt\srecords\sin\sits\sshadow\stables.
-D 2024-08-27T18:25:04.935
+C Improvements\sto\stestrunner.tcl:\s\sShow\selapse\stime\sin\sMM:SS\sor\sHH:MM:SS.\nKeep\strack\sof\sthe\stotal\snumber\sof\stests\sand\sthe\stotal\snumber\sof\serrors\nand\sreport\sthose\svalues\son\sa\ssummary\sline\sat\sthe\send.
+D 2024-08-27T19:17:29.271
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F test/temptable3.test d11a0974e52b347e45ee54ef1923c91ed91e4637
F test/temptrigger.test 38f0ca479b1822d3117069e014daabcaacefffcc
F test/tester.tcl 2c203a2dd664298f239f0ec3ce22fbc65b5f021c1e09edbae8452af8a694e052
-F test/testrunner.tcl 74b569b553a85a10677e0f9b2f6d22d90d9f07255fbec545ec9438bed677e8e8
+F test/testrunner.tcl 21449521b796376fb4341d84bdf9dae6befc409e2273f795b4bfda78644da22c
F test/testrunner_data.tcl b281136c9a4a3cb2e6772a87c2e94efad0c12ea3e7d0710521a3cad964f879a1
F test/thread001.test a0985c117eab62c0c65526e9fa5d1360dd1cac5b03bde223902763274ce21899
F test/thread002.test c24c83408e35ba5a952a3638b7ac03ccdf1ce4409289c54a050ac4c5f1de7502
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P d03d35eebaf82709414c87cfa6abc9d2baf8d7e64c2627bad0fd5bbda3e78d60
-R eae9b17364855941c00e92c86d398a4e
-U dan
-Z d07b6efd95ad4c9798aced1dad6099da
+P ca21c942c30a3dbff0e7d118e105b847d80b5388c74d19c2eeea71581f8f40b8
+R e9d7eae7ed3949bc9ba3747c7b003f26
+U drh
+Z 1e89338cdc3d7df9980ff860413d15b9
# Remove this line to create a well-formed Fossil manifest.
priority INTEGER NOT NULL, -- higher priority jobs may run earlier
/* Fields updated as jobs run */
- starttime INTEGER,
- endtime INTEGER,
+ starttime INTEGER, -- Start time (milliseconds since 1970)
+ endtime INTEGER, -- End time
state TEXT CHECK( state IN ('','ready','running','done','failed','omit') ),
- output TEXT
+ ntest INT, -- Number of test cases run
+ nerr INT, -- Number of errors reported
+ output TEXT -- test output
);
CREATE TABLE config(
exit
}
+# Compute an elapse time string MM:SS or HH:MM:SS based on the
+# number of milliseconds in the argument.
+#
+proc elapsetime {ms} {
+ set s [expr {int(($ms+500.0)*0.001)}]
+ set hr [expr {$s/3600}]
+ set mn [expr {($s/60)%60}]
+ set sc [expr {$s%60}]
+ if {$hr>0} {
+ return [format %02d:%02d:%02d $hr $mn $sc]
+ } else {
+ return [format %02d:%02d $mn $sc]
+ }
+}
+
# Helper routine for show_status
#
proc display_job {jobdict {tm ""}} {
array set job $jobdict
- set dfname [format %-60s $job(displayname)]
+ if {[string length $job(displayname)]>65} {
+ set dfname [format %.65s... $job(displayname)]
+ } else {
+ set dfname [format %-68s $job(displayname)]
+ }
set dtm ""
if {$tm!=""} {
- set dtm [format %-10s "\[[expr {$tm-$job(starttime)}]ms\]"]
+ set dtm [expr {$tm-$job(starttime)}]
+ set dtm [format %8s [elapsetime $dtm]]
}
puts " $dfname $dtm"
}
if {$S(failed)>0} {
set f "$S(failed) FAILED, "
}
- puts "Command line: \[testrunner.tcl$cmdline\]$clreol"
- puts "Jobs: $nJob "
- puts "Summary: ${tm}ms, ($fin/$total) finished,\
- ${f}$S(running) running "
+ puts [format %-79s "Command line: \[testrunner.tcl$cmdline\]$clreol"]
+ puts [format %-79s "Jobs: $nJob"]
+ puts [format %-79s "Summary: [elapsetime $tm], ($fin/$total) finished,\
+ ${f}$S(running) running "]
set srcdir [file dirname [file dirname $TRG(info_script)]]
if {$S(running)>0} {
}
proc mark_job_as_finished {jobid output state endtm} {
+ set ntest 1
+ set nerr 0
+ if {$endtm>0} {
+ if {[regexp {\y(\d+) errors out of (\d+) tests} $output all a b]} {
+ set nerr $a
+ set ntest $b
+ }
+ }
r_write_db {
if {$state=="failed"} {
set childstate omit
+ if {$nerr<=0} {set nerr 1}
} else {
set childstate ready
}
trdb eval {
UPDATE jobs
- SET output=$output, state=$state, endtime=$endtm
+ SET output=$output, state=$state, endtime=$endtm,
+ ntest=$ntest, nerr=$nerr
WHERE jobid=$jobid;
UPDATE jobs SET state=$childstate WHERE depid=$jobid;
}
puts "\nTest database is $TRG(dbname)"
puts "Test log is $TRG(logname)"
+ trdb eval {
+ SELECT sum(ntest) AS totaltest,
+ sum(nerr) AS totalerr
+ FROM jobs
+ } break
+ trdb eval {
+ SELECT max(endtime)-min(starttime) AS totaltime
+ FROM jobs WHERE endtime>0
+ } break;
+ set et [elapsetime $totaltime]
+ puts "$totalerr errors out of $totaltest tests in about $et"
}
# Handle the --buildonly option, if it was specified.