diff --git a/tests/cluster/run.tcl b/tests/cluster/run.tcl index f764cea0ae35e9e4a95d222348ec052ec92f9a09..93603ddc91c93196f2720526a617e24daa07ceb3 100644 --- a/tests/cluster/run.tcl +++ b/tests/cluster/run.tcl @@ -17,6 +17,7 @@ proc main {} { } run_tests cleanup + end_tests } if {[catch main e]} { diff --git a/tests/instances.tcl b/tests/instances.tcl index 353d9b2d24728928b0c7ee20a42879e7dc5be748..370d5e3aa6005a1ebaf5ff14c7c9ffe23b041e94 100644 --- a/tests/instances.tcl +++ b/tests/instances.tcl @@ -19,6 +19,7 @@ set ::verbose 0 set ::valgrind 0 set ::pause_on_error 0 set ::simulate_error 0 +set ::failed 0 set ::sentinel_instances {} set ::redis_instances {} set ::sentinel_base_port 20000 @@ -231,6 +232,7 @@ proc test {descr code} { flush stdout if {[catch {set retval [uplevel 1 $code]} error]} { + incr ::failed if {[string match "assertion:*" $error]} { set msg [string range $error 10 end] puts [colorstr red $msg] @@ -246,6 +248,7 @@ proc test {descr code} { } } +# Execute all the units inside the 'tests' directory. proc run_tests {} { set tests [lsort [glob ../tests/*]] foreach test $tests { @@ -258,6 +261,17 @@ proc run_tests {} { } } +# Print a message and exists with 0 / 1 according to zero or more failures. +proc end_tests {} { + if {$::failed == 0} { + puts "GOOD! No errors." + exit 0 + } else { + puts "WARNING $::failed tests faield." + exit 1 + } +} + # The "S" command is used to interact with the N-th Sentinel. # The general form is: # diff --git a/tests/sentinel/run.tcl b/tests/sentinel/run.tcl index f330299599c68ce84d4b326fe33f04b8b15e30e8..9a2fcfb498cec2a15a02dd2775a3c3d6c369c5a0 100644 --- a/tests/sentinel/run.tcl +++ b/tests/sentinel/run.tcl @@ -13,6 +13,7 @@ proc main {} { spawn_instance redis $::redis_base_port $::instances_count run_tests cleanup + end_tests } if {[catch main e]} {