commit - 5b9fbd58a16f02d98dbc6f0b4be7af12aa186cae
commit + 8dc949b075675abad57847c27ef695ecf419cb62
blob - 00195068734320ee5a9de3ef41853d0015f9adb1
blob + 1cb43054bbaba6dfe115061e321fe94b01bd16d8
--- exercise
+++ exercise
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
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.
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
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
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
# $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`
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
+#!/bin/sh
+
+d=`dirname $0`
+exec $d/assert-exercise $0 \
+ '' \
+ "error $0.tst\\n\\n" \
+ -q <<EOF
+#!/bin/sh
+ exit 127
+EOF