]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
In the testrunner status display, limit the number of reported failed jobs
authordrh <>
Wed, 28 Aug 2024 10:25:44 +0000 (10:25 +0000)
committerdrh <>
Wed, 28 Aug 2024 10:25:44 +0000 (10:25 +0000)
to avoid overflowing the terminal when there are many failures.

FossilOrigin-Name: ffeaa4d5d73871cbdf1ef70b9845d921ebdb96e964d232661a5048cab7d744ed

manifest
manifest.uuid
test/testrunner.tcl

index 60890f8056e97485aa192ffc9306307a3e203b75..b36a4ba20f234724014ef05371c01819862d1e26 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Disable\sshell\stest\scases\sthat\srequire\svirtual\stables\swhen\stestfixture\sis\nbuilt\susing\sSQLITE_OMIT_VIRTUALTABLE.
-D 2024-08-28T09:47:29.176
+C In\sthe\stestrunner\sstatus\sdisplay,\slimit\sthe\snumber\sof\sreported\sfailed\sjobs\nto\savoid\soverflowing\sthe\sterminal\swhen\sthere\sare\smany\sfailures.
+D 2024-08-28T10:25:44.140
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -1714,7 +1714,7 @@ F test/temptable2.test 76821347810ecc88203e6ef0dd6897b6036ac788e9dd3e6b04fd4d163
 F test/temptable3.test d11a0974e52b347e45ee54ef1923c91ed91e4637
 F test/temptrigger.test 38f0ca479b1822d3117069e014daabcaacefffcc
 F test/tester.tcl 2c203a2dd664298f239f0ec3ce22fbc65b5f021c1e09edbae8452af8a694e052
-F test/testrunner.tcl de5deab405d25cdb0f85c4b75cc63dc1fa0571b099621b585f083647d7f6d75a
+F test/testrunner.tcl c3f6e70f02bc0257d2d66ac1fff7d26d76b1c4fcdd5e4b4d90faf2a126623587
 F test/testrunner_data.tcl f1cbff53fe42087cac3d43ca02f9574bd212c842307442e2b6fff2183f5ccbfe
 F test/thread001.test a0985c117eab62c0c65526e9fa5d1360dd1cac5b03bde223902763274ce21899
 F test/thread002.test c24c83408e35ba5a952a3638b7ac03ccdf1ce4409289c54a050ac4c5f1de7502
@@ -2211,8 +2211,8 @@ F vsixtest/vsixtest.tcl 6195aba1f12a5e10efc2b8c0009532167be5e301abe5b31385638080
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 8f2cb357634ec0b5aef14f3d967e76db236f8899f3201efc80c264f548cc1b0b
-R 6d8d08b44812eef81a87de61d7679ec8
+P 8c73d54fd1e250fcd7f30741cfbd169af9aaecc2096c0c8a9486abaa064d69af
+R c92552ba898da06e8effb71b87a3f9eb
 U drh
-Z 9d65cc1858f9f46a1f30863c1abce3fa
+Z 9fabe008bd6ec45672f53069445b0fd8
 # Remove this line to create a well-formed Fossil manifest.
index fb2482f0ae3639eee9ddea1e3ba00cd31e75a70c..c41d9ba427cc41cfe26fb11112bcac6efbbcd34d 100644 (file)
@@ -1 +1 @@
-8c73d54fd1e250fcd7f30741cfbd169af9aaecc2096c0c8a9486abaa064d69af
+ffeaa4d5d73871cbdf1ef70b9845d921ebdb96e964d232661a5048cab7d744ed
index fcb46a92148cfb469821f679c0cb8fcb052ba727..a97983fac558e3ea3ca65ac1405b1a7e843405a8 100644 (file)
@@ -480,20 +480,37 @@ proc show_status {db cls} {
                          $ne errors, $nt tests"]
 
   set srcdir [file dirname [file dirname $TRG(info_script)]]
+  set nrun 0
   if {$S(running)>0} {
-    puts [format %-79s "Running:"]
+    puts [format %-79s "$S(running) Running:"]
     $db eval {
       SELECT * FROM jobs WHERE state='running' ORDER BY starttime 
     } job {
+      incr nrun
       display_job [array get job] $now
     }
   }
   if {$S(failed)>0} {
-    puts [format %-79s "Failures:"]
+    puts [format %-79s "$S(failed) Failed:"]
+    set nfail 0
+
+    # $mxtoshow tries to limit the number of "Failures:" reported so that
+    # the status display does not overflow a 24-line terminal.  But it will
+    # always show at least the most recent 4 failures, even if an overflow
+    # is needed.
+    set mxtoshow [expr {16-$nrun}]
+    if {$mxtoshow<4} {set mxtoshow 4}
+
     $db eval {
-      SELECT * FROM jobs WHERE state='failed' ORDER BY starttime
+      SELECT * FROM jobs WHERE state='failed' ORDER BY endtime DESC
     } job {
-      display_job [array get job]
+      incr nfail
+      if {$nfail<=$mxtoshow} {
+        display_job [array get job]
+      }
+    }
+    if {$nfail>$mxtoshow} {
+      puts [format %-79s "  ... plus [expr {$nfail-$mxtoshow}] more"]
     }
     set nOmit [$db one {SELECT count(*) FROM jobs WHERE state='omit'}]
     if {$nOmit} {