commit 8dc949b075675abad57847c27ef695ecf419cb62 from: Sven M. Hallberg date: Sun May 25 08:14:55 2025 UTC add -q: squelch standard output commit - 5b9fbd58a16f02d98dbc6f0b4be7af12aa186cae commit + 8dc949b075675abad57847c27ef695ecf419cb62 blob - 00195068734320ee5a9de3ef41853d0015f9adb1 blob + 1cb43054bbaba6dfe115061e321fe94b01bd16d8 --- exercise +++ exercise @@ -11,6 +11,7 @@ package require Tcl 8.4 set opts(-d) {*} ;# pattern for test search directories set opts(-p) {*.t} ;# pattern for test executable files set opts(-s) {*.tests} ;# pattern for test suite executable files +set opts(-q) 0 ;# quiet mode # executing tests @@ -202,6 +203,9 @@ proc summary {counters} { set last_print_progress 0 ;# timestamp of last progress output [ms] proc print_progress {counters} { + global opts + + if {$opts(-q)} return if {![isatty stdout]} return # Only print progress every 100ms. @@ -313,8 +317,8 @@ proc main {argc argv} { set counters {run 0 ok 0 fail 0 error 0} # handle command line options - set u {[-d pat] [-p pat] [-s pat] [path ...]} - while {[getopt argv {d:p:s:} opt arg]} { + set u {[-q] [-d pat] [-p pat] [-s pat] [path ...]} + while {[getopt argv {d:p:qs:} opt arg]} { if {$opt eq "?"} { puts stderr "usage: [file tail $::argv0] $u" exit 1 @@ -332,9 +336,9 @@ proc main {argc argv} { print_progress $counters execute_test counters $file } + if {!$opts(-q)} {puts [summary $counters]} - # TODO: sanity-check counters, exit 127 if mismatched - puts [summary $counters] + # TODO: sanity-check counters, exit 127 (?) if mismatched exit [notok $counters] } blob - 463ab25fde319dbe79fc192598eb3e0ace506e8a blob + e6b117aba3449ac86045ce62092acf3922ef5c61 --- exercise.1 +++ exercise.1 @@ -43,6 +43,8 @@ Defaults to Process (only) files matching the given pattern as test suites. Defaults to .Dq *.tests . +.It Fl q +Do not print status counters to standard output. .El . .Ss Test Files blob - 7a7a920ce3e1074a6fa6cf481ac3268c7dbb9fe9 blob + d0b629b57c5c1ae9f83c7404a481d9f9bc564258 --- tests/assert-exercise +++ tests/assert-exercise @@ -5,6 +5,7 @@ # $1: name of test file (used as base for aux files) # $2: expected stdout (printf syntax) # $3: expected stderr (printf syntax) +# further arguments: passed to exercise # stdin: test executable to run d=`dirname $0` @@ -26,7 +27,8 @@ cat > $tst chmod +x $tst # execute & compare -$exe $tst 1>$out 2>$err +shift 3 +$exe "$@" $tst 1>$out 2>$err test "$?" = "127" && exit 127 diff -u $experr $err >&2 && \ diff -u $expout $out >&2 blob - /dev/null blob + a6bb7548b45bf75b13d4bf6a0fbdda8107290fd9 (mode 755) --- /dev/null +++ tests/test-quiet.t @@ -0,0 +1,10 @@ +#!/bin/sh + +d=`dirname $0` +exec $d/assert-exercise $0 \ + '' \ + "error $0.tst\\n\\n" \ + -q <