Signed-off-by: Jean Privat <jean@pryen.org>
# Show a single-line status to use as a progression.
#
# Show a single-line status to use as a progression.
#
- # Note that the line starts with `'\r'` and is not ended by a `'\n'`.
+ # If `has_progress_bar` is true, then the output is a progress bar.
+ # The printed the line starts with `'\r'` and is not ended by a `'\n'`.
# So it is expected that:
# * no other output is printed between two calls
# * the last `show_unit_status` is followed by a new-line
# So it is expected that:
# * no other output is printed between two calls
# * the last `show_unit_status` is followed by a new-line
+ #
+ # If `has_progress_bar` is false, then only the first and last state is shown
fun show_unit_status(name: String, tests: SequenceRead[UnitTest])
do
var esc = 27.code_point.to_s
fun show_unit_status(name: String, tests: SequenceRead[UnitTest])
do
var esc = 27.code_point.to_s
+ if not has_progress_bar then
if done == 0 then
print "* {name} ({tests.length} tests)"
end
if done == 0 then
print "* {name} ({tests.length} tests)"
end
- # Is a status bar printed?
+ # Is a progress bar printed?
- # true if color and non-verbose mode
- fun has_status: Bool
+ # true if color (because and non-verbose mode
+ # (because verbose mode messes up with the progress bar).
+ fun has_progress_bar: Bool
do
return not opt_no_color.value and opt_verbose.value <= 0
end
do
return not opt_no_color.value and opt_verbose.value <= 0
end
- # Clear the line if `has_status` (no-op else)
- fun clear_status
+ # Clear the line if `has_progress_bar` (no-op else)
+ fun clear_progress_bar
- if has_status then printn "\r\x1B[K"
+ if has_progress_bar then printn "\r\x1B[K"
end
# Show the full description of the test-case.
end
# Show the full description of the test-case.
fun mark_done(du: DocUnit)
do
du.is_done = true
fun mark_done(du: DocUnit)
do
du.is_done = true
- toolcontext.clear_status
+ toolcontext.clear_progress_bar
toolcontext.show_unit(du)
show_status
end
toolcontext.show_unit(du)
show_status
end
if not before_module == null then before_module.run
for case in test_cases do
case.run
if not before_module == null then before_module.run
for case in test_cases do
case.run
- toolcontext.clear_status
+ toolcontext.clear_progress_bar
toolcontext.show_unit(case)
show_status
end
toolcontext.show_unit(case)
show_status
end