From 7d97a4c99b6564902c16be24ed352101a63e813d Mon Sep 17 00:00:00 2001 From: antirez Date: Tue, 4 Mar 2014 12:05:49 +0100 Subject: [PATCH] Sentinel test: initial debugging console. --- tests/sentinel-tests/00-base.tcl | 6 ++++++ tests/sentinel.tcl | 22 +++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/tests/sentinel-tests/00-base.tcl b/tests/sentinel-tests/00-base.tcl index e0c5c37d..26758de0 100644 --- a/tests/sentinel-tests/00-base.tcl +++ b/tests/sentinel-tests/00-base.tcl @@ -2,6 +2,12 @@ source "../sentinel-tests/includes/init-tests.tcl" +if {$::simulate_error} { + test "This test will fail" { + fail "Simulated error" + } +} + test "Basic failover works if the master is down" { set old_port [RI $master_id tcp_port] set addr [S 0 SENTINEL GET-MASTER-ADDR-BY-NAME mymaster] diff --git a/tests/sentinel.tcl b/tests/sentinel.tcl index 8954fe54..7fdf2d75 100644 --- a/tests/sentinel.tcl +++ b/tests/sentinel.tcl @@ -12,6 +12,7 @@ source tests/support/test.tcl set ::verbose 0 set ::pause_on_error 0 +set ::simulate_error 0 set ::sentinel_instances {} set ::redis_instances {} set ::sentinel_base_port 20000 @@ -98,11 +99,14 @@ proc parse_options {} { set ::run_matching "*${val}*" } elseif {$opt eq "--pause-on-error"} { set ::pause_on_error 1 + } elseif {$opt eq "--fail"} { + set ::simulate_error 1 } elseif {$opt eq "--help"} { puts "Hello, I'm sentinel.tcl and I run Sentinel unit tests." puts "\nOptions:" puts "--single Only runs tests specified by pattern." puts "--pause-on-error Pause for manual inspection on error." + puts "--fail Simulate a test failure." puts "--help Shows this help." exit 0 } else { @@ -130,7 +134,23 @@ proc pause_on_error {} { while 1 { puts -nonewline "> " flush stdout - if {[gets stdin] eq {continue}} break + set line [gets stdin] + set argv [split $line " "] + set cmd [lindex $argv 0] + if {$cmd eq {continue}} { + break + } elseif {$cmd eq {show-sentinel-logs}} { + set count 10 + if {[lindex $argv 1] ne {}} {set count [lindex $argv 1]} + foreach_sentinel_id id { + puts "=== SENTINEL $id ====" + puts [exec tail -$count sentinel_$id/log.txt] + puts "---------------------\n" + } + } else { + set errcode [catch {eval $line} retval] + puts "$retval" + } } }