assert_equal $type [r type $key]
}
+# Test if TERM looks like to support colors
+proc color_term {} {
+ expr {[info exists ::env(TERM)] && [string match *xterm* $::env(TERM)]}
+}
+
+# This is called before starting the test
+proc announce_test {s} {
+ if {[color_term]} {
+ puts -nonewline "$s\033\[0K"
+ flush stdout
+ set ::backward_count [string length $s]
+ }
+}
+
+# This is called after the test finished
proc colored_dot {tags passed} {
- if {[info exists ::env(TERM)] && [string match $::env(TERM) xterm]} {
+ if {[color_term]} {
+ # Go backward and delete what announc_test function printed.
+ puts -nonewline "\033\[${::backward_count}D\033\[0K\033\[J"
+
+ # Print a coloured char, accordingly to test outcome and tags.
if {[lsearch $tags list] != -1} {
set colorcode {31}
set ch L
if {$passed} {
puts -nonewline "\033\[0;${colorcode};40m"
} else {
- puts -nonewline "\033\[0;40;${colorcode}m"
+ puts -nonewline "\033\[7;${colorcode};40m"
}
puts -nonewline $ch
puts -nonewline "\033\[0m"
if {$::verbose} {
puts -nonewline [format "#%03d %-68s " $::num_tests $name]
flush stdout
+ } else {
+ announce_test $name
}
if {[catch {set retval [uplevel 1 $code]} error]} {